diff --git a/tools.descartes.dml.dni.text.sdk/.project b/tools.descartes.dml.dni.text.sdk/.project
new file mode 100644
index 0000000000000000000000000000000000000000..4812d74f012991064b1d6215e3df850e55189b34
--- /dev/null
+++ b/tools.descartes.dml.dni.text.sdk/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tools.descartes.dml.dni.text.sdk</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tools.descartes.dml.dni.text.sdk/build.properties b/tools.descartes.dml.dni.text.sdk/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..442bd78b67ae6b45ff790798929fb2b9f6b772e7
--- /dev/null
+++ b/tools.descartes.dml.dni.text.sdk/build.properties
@@ -0,0 +1 @@
+bin.includes =feature.xml
diff --git a/tools.descartes.dml.dni.text.sdk/feature.xml b/tools.descartes.dml.dni.text.sdk/feature.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9cdc852785f46d719c1f3f14c1e5466092c9da9c
--- /dev/null
+++ b/tools.descartes.dml.dni.text.sdk/feature.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature id="tools.descartes.dml.dni.text.sdk"
+	label="DNIText SDK Feature "
+	version="1.0.0.qualifier">
+	<plugin
+			id="tools.descartes.dml.dni.text"
+			download-size="0"
+			install-size="0"
+			version="0.0.0"
+			unpack="false"/>
+	<plugin
+			id="tools.descartes.dml.dni.text.ui"
+			download-size="0"
+			install-size="0"
+			version="0.0.0"
+			unpack="false"/>
+</feature>
diff --git a/tools.descartes.dml.dni.text.tests/.classpath b/tools.descartes.dml.dni.text.tests/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..d1b97f72bd5d590b3eb9c8335710d45875f6d2f8
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tools.descartes.dml.dni.text.tests/.project b/tools.descartes.dml.dni.text.tests/.project
new file mode 100644
index 0000000000000000000000000000000000000000..4969a239e3404e10d9f16322fba3315d2ec5b72f
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tools.descartes.dml.dni.text.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.core.resources.prefs b/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.jdt.core.prefs b/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..f42de363afaae68bbd968318f1d331877f5514fc
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/tools.descartes.dml.dni.text.tests/META-INF/MANIFEST.MF b/tools.descartes.dml.dni.text.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..0f3df05f6074a002a6721eb84c076ea8c4122f3d
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: tools.descartes.dml.dni.text.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: tools.descartes.dml.dni.text.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: tools.descartes.dml.dni.text,
+ tools.descartes.dml.dni.text.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.ui.workbench;resolution:=optional,
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional
+Import-Package: org.apache.log4j,
+ org.junit;version="4.5.0",
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0",
+ org.hamcrest.core
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Export-Package: tools.descatres.dml.dni.text
diff --git a/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextInjectorProvider.class b/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextInjectorProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..d9dbc99aa6508ecab956ef8824f821f35f3ccc15
Binary files /dev/null and b/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextInjectorProvider.class differ
diff --git a/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.class b/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..4e83e836604a1e4d07a24da35ca34addf80cedaf
Binary files /dev/null and b/tools.descartes.dml.dni.text.tests/bin/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.class differ
diff --git a/tools.descartes.dml.dni.text.tests/build.properties b/tools.descartes.dml.dni.text.tests/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c22eebe281e63f75fb34e7f6d3c01abd09f8ef4e
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = META-INF/,\
+       .
diff --git a/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextInjectorProvider.java b/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextInjectorProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..a585fe323f009dbf161b5d651534336757d8a37a
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextInjectorProvider.java
@@ -0,0 +1,48 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class DNITextInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+	
+    protected GlobalStateMemento stateBeforeInjectorCreation;
+	protected GlobalStateMemento stateAfterInjectorCreation;
+	protected Injector injector;
+
+	static {
+		GlobalRegistries.initializeDefaults();
+	}
+
+	@Override
+	public Injector getInjector()
+	{
+		if (injector == null) {
+			stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+			this.injector = internalCreateInjector();
+			stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+		}
+		return injector;
+	}
+	
+	protected Injector internalCreateInjector() {
+	    return new DNITextStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+
+	@Override
+	public void restoreRegistry() {
+		stateBeforeInjectorCreation.restoreGlobalState();
+	}
+
+	@Override
+	public void setupRegistry() {
+		getInjector();
+		stateAfterInjectorCreation.restoreGlobalState();
+	}
+}
diff --git a/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.java b/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..5df0a85d566a66e67177348042ed21d452919920
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/src-gen/tools/descatres/dml/dni/text/DNITextUiInjectorProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class DNITextUiInjectorProvider implements IInjectorProvider {
+	
+	@Override
+	public Injector getInjector() {
+		return tools.descatres.dml.dni.text.ui.internal.DNITextActivator.getInstance().getInjector("tools.descatres.dml.dni.text.DNIText");
+	}
+	
+}
diff --git a/tools.descartes.dml.dni.text.tests/tools.descartes.dml.dni.text.tests.launch b/tools.descartes.dml.dni.text.tests/tools.descartes.dml.dni.text.tests.launch
new file mode 100644
index 0000000000000000000000000000000000000000..5acc9737f0a348bb69b5491576c0a4c336d98156
--- /dev/null
+++ b/tools.descartes.dml.dni.text.tests/tools.descartes.dml.dni.text.tests.launch
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/tools.descartes.dml.dni.text.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=tools.descartes.dml.dni.text.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="tools.descartes.dml.dni.text.tests"/>
+</launchConfiguration>
diff --git a/tools.descartes.dml.dni.text.ui/.classpath b/tools.descartes.dml.dni.text.ui/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..d1b97f72bd5d590b3eb9c8335710d45875f6d2f8
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tools.descartes.dml.dni.text.ui/.project b/tools.descartes.dml.dni.text.ui/.project
new file mode 100644
index 0000000000000000000000000000000000000000..de8c849d686e9e55459bb4fca873d8229c68345f
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>tools.descartes.dml.dni.text.ui</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.core.resources.prefs b/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.jdt.core.prefs b/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..f42de363afaae68bbd968318f1d331877f5514fc
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/tools.descartes.dml.dni.text.ui/META-INF/MANIFEST.MF b/tools.descartes.dml.dni.text.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..047e6a498559d1bcf7560f68a65aa4e2a7b0a2ec
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: tools.descartes.dml.dni.text.ui
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: tools.descartes.dml.dni.text.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: tools.descartes.dml.dni.text;visibility:=reexport,
+ org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.ui,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Export-Package: tools.descatres.dml.dni.text.ui.quickfix,
+ tools.descatres.dml.dni.text.ui.contentassist,
+ tools.descatres.dml.dni.text.ui.internal,
+ tools.descatres.dml.dni.text.ui.contentassist.antlr
+Bundle-Activator: tools.descatres.dml.dni.text.ui.internal.DNITextActivator
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..89c76bd136a7ac5a605ed0988e13398b570de439
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.class
new file mode 100644
index 0000000000000000000000000000000000000000..c5650fa471f485c8499d9f64aca1fe9fa5947e0b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextUiModule.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextUiModule.class
new file mode 100644
index 0000000000000000000000000000000000000000..b85ee9db13b0055b0140bcdc6fb3b1a21fd2a070
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/DNITextUiModule.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..86676661ece1a3480373a7ea8cbeed51d6c32d00
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..c69e276bf5d3e466571caab08b722829d27483ca
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..4f77ac5deb587646b2d327db0e6fc986001ee2fc
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..3b7d1b67835341115e2d2897c47919ea0d25910f
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser$1.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..f148ca7f665634c1afa4d00ce77527760308298b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser$1.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..20c8314b55d2d6b761ba9b61f4ffd1b2b80cc489
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..9f3d7d5b215e942120e99ac4d5bf9a02e506140a
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g
new file mode 100644
index 0000000000000000000000000000000000000000..6d3d29797ff043af2e4c314fe3aac8c55cd2f2ee
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g
@@ -0,0 +1,31204 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalDNIText;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import tools.descatres.dml.dni.text.services.DNITextGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private DNITextGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(DNITextGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleNetworkInfrastructure
+entryRuleNetworkInfrastructure 
+:
+{ before(grammarAccess.getNetworkInfrastructureRule()); }
+	 ruleNetworkInfrastructure
+{ after(grammarAccess.getNetworkInfrastructureRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInfrastructure
+ruleNetworkInfrastructure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup()); }
+(rule__NetworkInfrastructure__Group__0)
+{ after(grammarAccess.getNetworkInfrastructureAccess().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().getAlternatives()); }
+(rule__Flow__Alternatives)
+{ after(grammarAccess.getFlowAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode 
+:
+{ before(grammarAccess.getNodeRule()); }
+	 ruleNode
+{ after(grammarAccess.getNodeRule()); } 
+	 EOF 
+;
+
+// Rule Node
+ruleNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNodeAccess().getAlternatives()); }
+(rule__Node__Alternatives)
+{ after(grammarAccess.getNodeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLink
+entryRuleLink 
+:
+{ before(grammarAccess.getLinkRule()); }
+	 ruleLink
+{ after(grammarAccess.getLinkRule()); } 
+	 EOF 
+;
+
+// Rule Link
+ruleLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLinkAccess().getAlternatives()); }
+(rule__Link__Alternatives)
+{ after(grammarAccess.getLinkAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDependency
+entryRuleDependency 
+:
+{ before(grammarAccess.getDependencyRule()); }
+	 ruleDependency
+{ after(grammarAccess.getDependencyRule()); } 
+	 EOF 
+;
+
+// Rule Dependency
+ruleDependency
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDependencyAccess().getAlternatives()); }
+(rule__Dependency__Alternatives)
+{ after(grammarAccess.getDependencyAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDNIUnit
+entryRuleDNIUnit 
+:
+{ before(grammarAccess.getDNIUnitRule()); }
+	 ruleDNIUnit
+{ after(grammarAccess.getDNIUnitRule()); } 
+	 EOF 
+;
+
+// Rule DNIUnit
+ruleDNIUnit
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); }
+	ruleSpeedUnit
+{ after(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFunction
+entryRuleFunction 
+:
+{ before(grammarAccess.getFunctionRule()); }
+	 ruleFunction
+{ after(grammarAccess.getFunctionRule()); } 
+	 EOF 
+;
+
+// Rule Function
+ruleFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFunctionAccess().getAlternatives()); }
+(rule__Function__Alternatives)
+{ after(grammarAccess.getFunctionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWorkload
+entryRuleWorkload 
+:
+{ before(grammarAccess.getWorkloadRule()); }
+	 ruleWorkload
+{ after(grammarAccess.getWorkloadRule()); } 
+	 EOF 
+;
+
+// Rule Workload
+ruleWorkload
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); }
+	ruleGenericWorkload
+{ after(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAbstractAction
+entryRuleAbstractAction 
+:
+{ before(grammarAccess.getAbstractActionRule()); }
+	 ruleAbstractAction
+{ after(grammarAccess.getAbstractActionRule()); } 
+	 EOF 
+;
+
+// Rule AbstractAction
+ruleAbstractAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAbstractActionAccess().getAlternatives()); }
+(rule__AbstractAction__Alternatives)
+{ after(grammarAccess.getAbstractActionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePerformanceSpecification
+entryRulePerformanceSpecification 
+:
+{ before(grammarAccess.getPerformanceSpecificationRule()); }
+	 rulePerformanceSpecification
+{ after(grammarAccess.getPerformanceSpecificationRule()); } 
+	 EOF 
+;
+
+// Rule PerformanceSpecification
+rulePerformanceSpecification
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); }
+(rule__PerformanceSpecification__Alternatives)
+{ after(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkInterfacePerfSpec
+entryRuleNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getNetworkInterfacePerfSpecRule()); }
+	 ruleNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInterfacePerfSpec
+ruleNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); }
+(rule__NetworkInterfacePerfSpec__Alternatives)
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualNetworkInterfacePerfSpec
+entryRuleVirtualNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); }
+	 ruleVirtualNetworkInterfacePerfSpec
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNetworkInterfacePerfSpec
+ruleVirtualNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); }
+(rule__VirtualNetworkInterfacePerfSpec__Group__0)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNetworkInterfacePerfSpec
+entryRulePhysicalNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); }
+	 rulePhysicalNetworkInterfacePerfSpec
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNetworkInterfacePerfSpec
+rulePhysicalNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); }
+(rule__PhysicalNetworkInterfacePerfSpec__Group__0)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLinkPerfSpec
+entryRuleLinkPerfSpec 
+:
+{ before(grammarAccess.getLinkPerfSpecRule()); }
+	 ruleLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule LinkPerfSpec
+ruleLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); }
+(rule__LinkPerfSpec__Alternatives)
+{ after(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualLinkPerfSpec
+entryRuleVirtualLinkPerfSpec 
+:
+{ before(grammarAccess.getVirtualLinkPerfSpecRule()); }
+	 ruleVirtualLinkPerfSpec
+{ after(grammarAccess.getVirtualLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule VirtualLinkPerfSpec
+ruleVirtualLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); }
+(rule__VirtualLinkPerfSpec__Group__0)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalLinkPerfSpec
+entryRulePhysicalLinkPerfSpec 
+:
+{ before(grammarAccess.getPhysicalLinkPerfSpecRule()); }
+	 rulePhysicalLinkPerfSpec
+{ after(grammarAccess.getPhysicalLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalLinkPerfSpec
+rulePhysicalLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); }
+(rule__PhysicalLinkPerfSpec__Group__0)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIntermediateNodePerfSpec
+entryRuleIntermediateNodePerfSpec 
+:
+{ before(grammarAccess.getIntermediateNodePerfSpecRule()); }
+	 ruleIntermediateNodePerfSpec
+{ after(grammarAccess.getIntermediateNodePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule IntermediateNodePerfSpec
+ruleIntermediateNodePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); }
+(rule__IntermediateNodePerfSpec__Group__0)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleControlPlanePerfSpec
+entryRuleControlPlanePerfSpec 
+:
+{ before(grammarAccess.getControlPlanePerfSpecRule()); }
+	 ruleControlPlanePerfSpec
+{ after(grammarAccess.getControlPlanePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule ControlPlanePerfSpec
+ruleControlPlanePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); }
+(rule__ControlPlanePerfSpec__Group__0)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataPlanePerfSpec
+entryRuleDataPlanePerfSpec 
+:
+{ before(grammarAccess.getDataPlanePerfSpecRule()); }
+	 ruleDataPlanePerfSpec
+{ after(grammarAccess.getDataPlanePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule DataPlanePerfSpec
+ruleDataPlanePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); }
+(rule__DataPlanePerfSpec__Group__0)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEndNodePerfSpec
+entryRuleEndNodePerfSpec 
+:
+{ before(grammarAccess.getEndNodePerfSpecRule()); }
+	 ruleEndNodePerfSpec
+{ after(grammarAccess.getEndNodePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule EndNodePerfSpec
+ruleEndNodePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup()); }
+(rule__EndNodePerfSpec__Group__0)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkInterface
+entryRuleNetworkInterface 
+:
+{ before(grammarAccess.getNetworkInterfaceRule()); }
+	 ruleNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInterface
+ruleNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); }
+(rule__NetworkInterface__Alternatives)
+{ after(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkTraffic
+entryRuleNetworkTraffic 
+:
+{ before(grammarAccess.getNetworkTrafficRule()); }
+	 ruleNetworkTraffic
+{ after(grammarAccess.getNetworkTrafficRule()); } 
+	 EOF 
+;
+
+// Rule NetworkTraffic
+ruleNetworkTraffic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup()); }
+(rule__NetworkTraffic__Group__0)
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkStructure
+entryRuleNetworkStructure 
+:
+{ before(grammarAccess.getNetworkStructureRule()); }
+	 ruleNetworkStructure
+{ after(grammarAccess.getNetworkStructureRule()); } 
+	 EOF 
+;
+
+// Rule NetworkStructure
+ruleNetworkStructure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup()); }
+(rule__NetworkStructure__Group__0)
+{ after(grammarAccess.getNetworkStructureAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkConfiguration
+entryRuleNetworkConfiguration 
+:
+{ before(grammarAccess.getNetworkConfigurationRule()); }
+	 ruleNetworkConfiguration
+{ after(grammarAccess.getNetworkConfigurationRule()); } 
+	 EOF 
+;
+
+// Rule NetworkConfiguration
+ruleNetworkConfiguration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getGroup()); }
+(rule__NetworkConfiguration__Group__0)
+{ after(grammarAccess.getNetworkConfigurationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleExperimentParam
+entryRuleExperimentParam 
+:
+{ before(grammarAccess.getExperimentParamRule()); }
+	 ruleExperimentParam
+{ after(grammarAccess.getExperimentParamRule()); } 
+	 EOF 
+;
+
+// Rule ExperimentParam
+ruleExperimentParam
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getExperimentParamAccess().getGroup()); }
+(rule__ExperimentParam__Group__0)
+{ after(grammarAccess.getExperimentParamAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString 
+:
+{ before(grammarAccess.getEStringRule()); }
+	 ruleEString
+{ after(grammarAccess.getEStringRule()); } 
+	 EOF 
+;
+
+// Rule EString
+ruleEString
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEStringAccess().getAlternatives()); }
+(rule__EString__Alternatives)
+{ after(grammarAccess.getEStringAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSoftwareComponent
+entryRuleSoftwareComponent 
+:
+{ before(grammarAccess.getSoftwareComponentRule()); }
+	 ruleSoftwareComponent
+{ after(grammarAccess.getSoftwareComponentRule()); } 
+	 EOF 
+;
+
+// Rule SoftwareComponent
+ruleSoftwareComponent
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup()); }
+(rule__SoftwareComponent__Group__0)
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEntityAddress
+entryRuleEntityAddress 
+:
+{ before(grammarAccess.getEntityAddressRule()); }
+	 ruleEntityAddress
+{ after(grammarAccess.getEntityAddressRule()); } 
+	 EOF 
+;
+
+// Rule EntityAddress
+ruleEntityAddress
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup()); }
+(rule__EntityAddress__Group__0)
+{ after(grammarAccess.getEntityAddressAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleONOFFFlow
+entryRuleONOFFFlow 
+:
+{ before(grammarAccess.getONOFFFlowRule()); }
+	 ruleONOFFFlow
+{ after(grammarAccess.getONOFFFlowRule()); } 
+	 EOF 
+;
+
+// Rule ONOFFFlow
+ruleONOFFFlow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup()); }
+(rule__ONOFFFlow__Group__0)
+{ after(grammarAccess.getONOFFFlowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGenericFlow
+entryRuleGenericFlow 
+:
+{ before(grammarAccess.getGenericFlowRule()); }
+	 ruleGenericFlow
+{ after(grammarAccess.getGenericFlowRule()); } 
+	 EOF 
+;
+
+// Rule GenericFlow
+ruleGenericFlow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup()); }
+(rule__GenericFlow__Group__0)
+{ after(grammarAccess.getGenericFlowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkProtocol
+entryRuleNetworkProtocol 
+:
+{ before(grammarAccess.getNetworkProtocolRule()); }
+	 ruleNetworkProtocol
+{ after(grammarAccess.getNetworkProtocolRule()); } 
+	 EOF 
+;
+
+// Rule NetworkProtocol
+ruleNetworkProtocol
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup()); }
+(rule__NetworkProtocol__Group__0)
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEInt
+entryRuleEInt 
+:
+{ before(grammarAccess.getEIntRule()); }
+	 ruleEInt
+{ after(grammarAccess.getEIntRule()); } 
+	 EOF 
+;
+
+// Rule EInt
+ruleEInt
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEIntAccess().getGroup()); }
+(rule__EInt__Group__0)
+{ after(grammarAccess.getEIntAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEBoolean
+entryRuleEBoolean 
+:
+{ before(grammarAccess.getEBooleanRule()); }
+	 ruleEBoolean
+{ after(grammarAccess.getEBooleanRule()); } 
+	 EOF 
+;
+
+// Rule EBoolean
+ruleEBoolean
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEBooleanAccess().getAlternatives()); }
+(rule__EBoolean__Alternatives)
+{ after(grammarAccess.getEBooleanAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConstantDoubleVariable
+entryRuleConstantDoubleVariable 
+:
+{ before(grammarAccess.getConstantDoubleVariableRule()); }
+	 ruleConstantDoubleVariable
+{ after(grammarAccess.getConstantDoubleVariableRule()); } 
+	 EOF 
+;
+
+// Rule ConstantDoubleVariable
+ruleConstantDoubleVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getGroup()); }
+(rule__ConstantDoubleVariable__Group__0)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConstantLongVariable
+entryRuleConstantLongVariable 
+:
+{ before(grammarAccess.getConstantLongVariableRule()); }
+	 ruleConstantLongVariable
+{ after(grammarAccess.getConstantLongVariableRule()); } 
+	 EOF 
+;
+
+// Rule ConstantLongVariable
+ruleConstantLongVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getGroup()); }
+(rule__ConstantLongVariable__Group__0)
+{ after(grammarAccess.getConstantLongVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRandomVariable
+entryRuleRandomVariable 
+:
+{ before(grammarAccess.getRandomVariableRule()); }
+	 ruleRandomVariable
+{ after(grammarAccess.getRandomVariableRule()); } 
+	 EOF 
+;
+
+// Rule RandomVariable
+ruleRandomVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRandomVariableAccess().getGroup()); }
+(rule__RandomVariable__Group__0)
+{ after(grammarAccess.getRandomVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleContinuousFunction
+entryRuleContinuousFunction 
+:
+{ before(grammarAccess.getContinuousFunctionRule()); }
+	 ruleContinuousFunction
+{ after(grammarAccess.getContinuousFunctionRule()); } 
+	 EOF 
+;
+
+// Rule ContinuousFunction
+ruleContinuousFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getGroup()); }
+(rule__ContinuousFunction__Group__0)
+{ after(grammarAccess.getContinuousFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDiscreteFunction
+entryRuleDiscreteFunction 
+:
+{ before(grammarAccess.getDiscreteFunctionRule()); }
+	 ruleDiscreteFunction
+{ after(grammarAccess.getDiscreteFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DiscreteFunction
+ruleDiscreteFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup()); }
+(rule__DiscreteFunction__Group__0)
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEFloat
+entryRuleEFloat 
+:
+{ before(grammarAccess.getEFloatRule()); }
+	 ruleEFloat
+{ after(grammarAccess.getEFloatRule()); } 
+	 EOF 
+;
+
+// Rule EFloat
+ruleEFloat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEFloatAccess().getGroup()); }
+(rule__EFloat__Group__0)
+{ after(grammarAccess.getEFloatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSpeedUnit
+entryRuleSpeedUnit 
+:
+{ before(grammarAccess.getSpeedUnitRule()); }
+	 ruleSpeedUnit
+{ after(grammarAccess.getSpeedUnitRule()); } 
+	 EOF 
+;
+
+// Rule SpeedUnit
+ruleSpeedUnit
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getGroup()); }
+(rule__SpeedUnit__Group__0)
+{ after(grammarAccess.getSpeedUnitAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble 
+:
+{ before(grammarAccess.getEDoubleRule()); }
+	 ruleEDouble
+{ after(grammarAccess.getEDoubleRule()); } 
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup()); }
+(rule__EDouble__Group__0)
+{ after(grammarAccess.getEDoubleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleELong
+entryRuleELong 
+:
+{ before(grammarAccess.getELongRule()); }
+	 ruleELong
+{ after(grammarAccess.getELongRule()); } 
+	 EOF 
+;
+
+// Rule ELong
+ruleELong
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getELongAccess().getGroup()); }
+(rule__ELong__Group__0)
+{ after(grammarAccess.getELongAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataSeries
+entryRuleDataSeries 
+:
+{ before(grammarAccess.getDataSeriesRule()); }
+	 ruleDataSeries
+{ after(grammarAccess.getDataSeriesRule()); } 
+	 EOF 
+;
+
+// Rule DataSeries
+ruleDataSeries
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup()); }
+(rule__DataSeries__Group__0)
+{ after(grammarAccess.getDataSeriesAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTrafficSource
+entryRuleTrafficSource 
+:
+{ before(grammarAccess.getTrafficSourceRule()); }
+	 ruleTrafficSource
+{ after(grammarAccess.getTrafficSourceRule()); } 
+	 EOF 
+;
+
+// Rule TrafficSource
+ruleTrafficSource
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup()); }
+(rule__TrafficSource__Group__0)
+{ after(grammarAccess.getTrafficSourceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGenericWorkload
+entryRuleGenericWorkload 
+:
+{ before(grammarAccess.getGenericWorkloadRule()); }
+	 ruleGenericWorkload
+{ after(grammarAccess.getGenericWorkloadRule()); } 
+	 EOF 
+;
+
+// Rule GenericWorkload
+ruleGenericWorkload
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup()); }
+(rule__GenericWorkload__Group__0)
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction 
+:
+{ before(grammarAccess.getBranchActionRule()); }
+	 ruleBranchAction
+{ after(grammarAccess.getBranchActionRule()); } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup()); }
+(rule__BranchAction__Group__0)
+{ after(grammarAccess.getBranchActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction 
+:
+{ before(grammarAccess.getLoopActionRule()); }
+	 ruleLoopAction
+{ after(grammarAccess.getLoopActionRule()); } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup()); }
+(rule__LoopAction__Group__0)
+{ after(grammarAccess.getLoopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSequenceAction
+entryRuleSequenceAction 
+:
+{ before(grammarAccess.getSequenceActionRule()); }
+	 ruleSequenceAction
+{ after(grammarAccess.getSequenceActionRule()); } 
+	 EOF 
+;
+
+// Rule SequenceAction
+ruleSequenceAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSequenceActionAccess().getGroup()); }
+(rule__SequenceAction__Group__0)
+{ after(grammarAccess.getSequenceActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction 
+:
+{ before(grammarAccess.getStartActionRule()); }
+	 ruleStartAction
+{ after(grammarAccess.getStartActionRule()); } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup()); }
+(rule__StartAction__Group__0)
+{ after(grammarAccess.getStartActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction 
+:
+{ before(grammarAccess.getStopActionRule()); }
+	 ruleStopAction
+{ after(grammarAccess.getStopActionRule()); } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup()); }
+(rule__StopAction__Group__0)
+{ after(grammarAccess.getStopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransmitAction
+entryRuleTransmitAction 
+:
+{ before(grammarAccess.getTransmitActionRule()); }
+	 ruleTransmitAction
+{ after(grammarAccess.getTransmitActionRule()); } 
+	 EOF 
+;
+
+// Rule TransmitAction
+ruleTransmitAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTransmitActionAccess().getGroup()); }
+(rule__TransmitAction__Group__0)
+{ after(grammarAccess.getTransmitActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWaitAction
+entryRuleWaitAction 
+:
+{ before(grammarAccess.getWaitActionRule()); }
+	 ruleWaitAction
+{ after(grammarAccess.getWaitActionRule()); } 
+	 EOF 
+;
+
+// Rule WaitAction
+ruleWaitAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWaitActionAccess().getGroup()); }
+(rule__WaitAction__Group__0)
+{ after(grammarAccess.getWaitActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleVirtualNode
+entryRuleVirtualNode 
+:
+{ before(grammarAccess.getVirtualNodeRule()); }
+	 ruleVirtualNode
+{ after(grammarAccess.getVirtualNodeRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNode
+ruleVirtualNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup()); }
+(rule__VirtualNode__Group__0)
+{ after(grammarAccess.getVirtualNodeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNode
+entryRulePhysicalNode 
+:
+{ before(grammarAccess.getPhysicalNodeRule()); }
+	 rulePhysicalNode
+{ after(grammarAccess.getPhysicalNodeRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNode
+rulePhysicalNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup()); }
+(rule__PhysicalNode__Group__0)
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalLink
+entryRulePhysicalLink 
+:
+{ before(grammarAccess.getPhysicalLinkRule()); }
+	 rulePhysicalLink
+{ after(grammarAccess.getPhysicalLinkRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalLink
+rulePhysicalLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup()); }
+(rule__PhysicalLink__Group__0)
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualLink
+entryRuleVirtualLink 
+:
+{ before(grammarAccess.getVirtualLinkRule()); }
+	 ruleVirtualLink
+{ after(grammarAccess.getVirtualLinkRule()); } 
+	 EOF 
+;
+
+// Rule VirtualLink
+ruleVirtualLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup()); }
+(rule__VirtualLink__Group__0)
+{ after(grammarAccess.getVirtualLinkAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolsRepository
+entryRuleProtocolsRepository 
+:
+{ before(grammarAccess.getProtocolsRepositoryRule()); }
+	 ruleProtocolsRepository
+{ after(grammarAccess.getProtocolsRepositoryRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolsRepository
+ruleProtocolsRepository
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup()); }
+(rule__ProtocolsRepository__Group__0)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRoutesRepository
+entryRuleRoutesRepository 
+:
+{ before(grammarAccess.getRoutesRepositoryRule()); }
+	 ruleRoutesRepository
+{ after(grammarAccess.getRoutesRepositoryRule()); } 
+	 EOF 
+;
+
+// Rule RoutesRepository
+ruleRoutesRepository
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup()); }
+(rule__RoutesRepository__Group__0)
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolStack
+entryRuleProtocolStack 
+:
+{ before(grammarAccess.getProtocolStackRule()); }
+	 ruleProtocolStack
+{ after(grammarAccess.getProtocolStackRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolStack
+ruleProtocolStack
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup()); }
+(rule__ProtocolStack__Group__0)
+{ after(grammarAccess.getProtocolStackAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolLayer
+entryRuleProtocolLayer 
+:
+{ before(grammarAccess.getProtocolLayerRule()); }
+	 ruleProtocolLayer
+{ after(grammarAccess.getProtocolLayerRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolLayer
+ruleProtocolLayer
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup()); }
+(rule__ProtocolLayer__Group__0)
+{ after(grammarAccess.getProtocolLayerAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRoute
+entryRuleRoute 
+:
+{ before(grammarAccess.getRouteRule()); }
+	 ruleRoute
+{ after(grammarAccess.getRouteRule()); } 
+	 EOF 
+;
+
+// Rule Route
+ruleRoute
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRouteAccess().getGroup()); }
+(rule__Route__Group__0)
+{ after(grammarAccess.getRouteAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlowRoute
+entryRuleFlowRoute 
+:
+{ before(grammarAccess.getFlowRouteRule()); }
+	 ruleFlowRoute
+{ after(grammarAccess.getFlowRouteRule()); } 
+	 EOF 
+;
+
+// Rule FlowRoute
+ruleFlowRoute
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup()); }
+(rule__FlowRoute__Group__0)
+{ after(grammarAccess.getFlowRouteAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDirection
+entryRuleDirection 
+:
+{ before(grammarAccess.getDirectionRule()); }
+	 ruleDirection
+{ after(grammarAccess.getDirectionRule()); } 
+	 EOF 
+;
+
+// Rule Direction
+ruleDirection
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup()); }
+(rule__Direction__Group__0)
+{ after(grammarAccess.getDirectionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleHop
+entryRuleHop 
+:
+{ before(grammarAccess.getHopRule()); }
+	 ruleHop
+{ after(grammarAccess.getHopRule()); } 
+	 EOF 
+;
+
+// Rule Hop
+ruleHop
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getHopAccess().getGroup()); }
+(rule__Hop__Group__0)
+{ after(grammarAccess.getHopAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEIntegerObject
+entryRuleEIntegerObject 
+:
+{ before(grammarAccess.getEIntegerObjectRule()); }
+	 ruleEIntegerObject
+{ after(grammarAccess.getEIntegerObjectRule()); } 
+	 EOF 
+;
+
+// Rule EIntegerObject
+ruleEIntegerObject
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getGroup()); }
+(rule__EIntegerObject__Group__0)
+{ after(grammarAccess.getEIntegerObjectAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNetworkInterface
+entryRulePhysicalNetworkInterface 
+:
+{ before(grammarAccess.getPhysicalNetworkInterfaceRule()); }
+	 rulePhysicalNetworkInterface
+{ after(grammarAccess.getPhysicalNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNetworkInterface
+rulePhysicalNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); }
+(rule__PhysicalNetworkInterface__Group__0)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualNetworkInterface
+entryRuleVirtualNetworkInterface 
+:
+{ before(grammarAccess.getVirtualNetworkInterfaceRule()); }
+	 ruleVirtualNetworkInterface
+{ after(grammarAccess.getVirtualNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNetworkInterface
+ruleVirtualNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); }
+(rule__VirtualNetworkInterface__Group__0)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+// Rule UnitPrefix
+ruleUnitPrefix
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitPrefixAccess().getAlternatives()); }
+(rule__UnitPrefix__Alternatives)
+{ after(grammarAccess.getUnitPrefixAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Speed
+ruleSpeed
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedAccess().getAlternatives()); }
+(rule__Speed__Alternatives)
+{ after(grammarAccess.getSpeedAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__Flow__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); }
+	ruleONOFFFlow
+{ after(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); }
+	ruleGenericFlow
+{ after(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Node__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); }
+	ruleVirtualNode
+{ after(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); }
+	rulePhysicalNode
+{ after(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Link__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); }
+	rulePhysicalLink
+{ after(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); }
+	ruleVirtualLink
+{ after(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Dependency__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); }
+	ruleConstantDoubleVariable
+{ after(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); }
+	ruleConstantLongVariable
+{ after(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); }
+	ruleRandomVariable
+{ after(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); }
+	ruleContinuousFunction
+{ after(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); }
+	ruleDiscreteFunction
+{ after(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Function__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); }
+	ruleContinuousFunction
+{ after(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); }
+	ruleDiscreteFunction
+{ after(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AbstractAction__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); }
+	ruleBranchAction
+{ after(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); }
+	ruleLoopAction
+{ after(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); }
+	ruleSequenceAction
+{ after(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); }
+	ruleStartAction
+{ after(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); }
+	ruleStopAction
+{ after(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); }
+	ruleTransmitAction
+{ after(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); }
+	ruleWaitAction
+{ after(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerformanceSpecification__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); }
+	ruleIntermediateNodePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); }
+	ruleEndNodePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); }
+	ruleLinkPerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); }
+	ruleNetworkInterfacePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInterfacePerfSpec__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); }
+	rulePhysicalNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); }
+	ruleVirtualNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LinkPerfSpec__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); }
+	rulePhysicalLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); }
+	ruleVirtualLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInterface__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); }
+	rulePhysicalNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); }
+	ruleVirtualNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EString__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+	RULE_STRING
+{ after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+	RULE_ID
+{ after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EBoolean__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+
+	'true' 
+
+{ after(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+
+	'false' 
+
+{ after(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnitPrefix__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); }
+(	'none' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); }
+(	'K' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); }
+(	'M' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); }
+(	'G' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Speed__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); }
+(	'BytesPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); }
+(	'bitsPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); }
+(	'packetsPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__NetworkInfrastructure__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__0__Impl
+	rule__NetworkInfrastructure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); }
+
+	'NetworkInfrastructure' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__1__Impl
+	rule__NetworkInfrastructure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__2__Impl
+	rule__NetworkInfrastructure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); }
+
+	'dataCenterName' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__3__Impl
+	rule__NetworkInfrastructure__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); }
+(rule__NetworkInfrastructure__DataCenterNameAssignment_3)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__4__Impl
+	rule__NetworkInfrastructure__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); }
+
+	'dataCenterAltName' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__5__Impl
+	rule__NetworkInfrastructure__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); }
+(rule__NetworkInfrastructure__DataCenterAltNameAssignment_5)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__6__Impl
+	rule__NetworkInfrastructure__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); }
+
+	'traffic' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__7__Impl
+	rule__NetworkInfrastructure__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); }
+(rule__NetworkInfrastructure__TrafficAssignment_7)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__8__Impl
+	rule__NetworkInfrastructure__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); }
+
+	'structure' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__9__Impl
+	rule__NetworkInfrastructure__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); }
+(rule__NetworkInfrastructure__StructureAssignment_9)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__10__Impl
+	rule__NetworkInfrastructure__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); }
+
+	'configuration' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__11__Impl
+	rule__NetworkInfrastructure__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); }
+(rule__NetworkInfrastructure__ConfigurationAssignment_11)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__12__Impl
+	rule__NetworkInfrastructure__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); }
+(rule__NetworkInfrastructure__Group_12__0)?
+{ after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__0__Impl
+	rule__NetworkInfrastructure__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); }
+
+	'params' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__1__Impl
+	rule__NetworkInfrastructure__Group_12__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__2__Impl
+	rule__NetworkInfrastructure__Group_12__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); }
+(rule__NetworkInfrastructure__ParamsAssignment_12_2)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__3__Impl
+	rule__NetworkInfrastructure__Group_12__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); }
+(rule__NetworkInfrastructure__Group_12_3__0)*
+{ after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__Group_12_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12_3__0__Impl
+	rule__NetworkInfrastructure__Group_12_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); }
+(rule__NetworkInfrastructure__ParamsAssignment_12_3_1)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); }
+
+	'VirtualNetworkInterfacePerfSpec' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+
+	'isUp' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+(rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+(rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+
+	'MTU' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+(rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+
+	'interfaceSpeed' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+(rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); }
+
+	'PhysicalNetworkInterfacePerfSpec' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+
+	'isUp' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+(rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+(rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+
+	'MTU' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+(rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+
+	'interfaceSpeed' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+(rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLinkPerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__0__Impl
+	rule__VirtualLinkPerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__1__Impl
+	rule__VirtualLinkPerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); }
+
+	'VirtualLinkPerfSpec' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__2__Impl
+	rule__VirtualLinkPerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__3__Impl
+	rule__VirtualLinkPerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+
+	'propagationDelay' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__4__Impl
+	rule__VirtualLinkPerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+(rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__5__Impl
+	rule__VirtualLinkPerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); }
+(rule__VirtualLinkPerfSpec__Group_5__0)?
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLinkPerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group_5__0__Impl
+	rule__VirtualLinkPerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+
+	'maxSupportedBandwidth' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+(rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLinkPerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__0__Impl
+	rule__PhysicalLinkPerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__1__Impl
+	rule__PhysicalLinkPerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); }
+
+	'PhysicalLinkPerfSpec' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__2__Impl
+	rule__PhysicalLinkPerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__3__Impl
+	rule__PhysicalLinkPerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+
+	'propagationDelay' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__4__Impl
+	rule__PhysicalLinkPerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+(rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__5__Impl
+	rule__PhysicalLinkPerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); }
+(rule__PhysicalLinkPerfSpec__Group_5__0)?
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLinkPerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group_5__0__Impl
+	rule__PhysicalLinkPerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+
+	'maxSupportedBandwidth' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+(rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__IntermediateNodePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__0__Impl
+	rule__IntermediateNodePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); }
+
+	'IntermediateNodePerfSpec' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__1__Impl
+	rule__IntermediateNodePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__2__Impl
+	rule__IntermediateNodePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); }
+
+	'dataplane' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__3__Impl
+	rule__IntermediateNodePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); }
+(rule__IntermediateNodePerfSpec__DataplaneAssignment_3)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__4__Impl
+	rule__IntermediateNodePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); }
+
+	'controlplane' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__5__Impl
+	rule__IntermediateNodePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); }
+(rule__IntermediateNodePerfSpec__ControlplaneAssignment_5)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ControlPlanePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__0__Impl
+	rule__ControlPlanePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+
+	'DataPlanePerfSpec' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__1__Impl
+	rule__ControlPlanePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__2__Impl
+	rule__ControlPlanePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); }
+
+	'processingLatency' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__3__Impl
+	rule__ControlPlanePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); }
+(rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__4__Impl
+	rule__ControlPlanePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); }
+
+	'processingBandwidthReqPS' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__5__Impl
+	rule__ControlPlanePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); }
+(rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__6__Impl
+	rule__ControlPlanePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__7__Impl
+	rule__ControlPlanePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); }
+(rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataPlanePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__0__Impl
+	rule__DataPlanePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+
+	'DataPlanePerfSpec' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__1__Impl
+	rule__DataPlanePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__2__Impl
+	rule__DataPlanePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); }
+
+	'forwardingLatency' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__3__Impl
+	rule__DataPlanePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); }
+(rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__4__Impl
+	rule__DataPlanePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); }
+
+	'forwardingBandwidthPPS' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__5__Impl
+	rule__DataPlanePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); }
+(rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__6__Impl
+	rule__DataPlanePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); }
+
+	'forwardingBandwidthBPS' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__7__Impl
+	rule__DataPlanePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); }
+(rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__8__Impl
+	rule__DataPlanePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__9__Impl
+	rule__DataPlanePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); }
+(rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__0__Impl
+	rule__EndNodePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); }
+
+	'EndNodePerfSpec' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__1__Impl
+	rule__EndNodePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__2__Impl
+	rule__EndNodePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); }
+
+	'softwareLayersDelay' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__3__Impl
+	rule__EndNodePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); }
+(rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__4__Impl
+	rule__EndNodePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); }
+(rule__EndNodePerfSpec__Group_4__0)?
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__5__Impl
+	rule__EndNodePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); }
+(rule__EndNodePerfSpec__Group_5__0)?
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_4__0__Impl
+	rule__EndNodePerfSpec__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); }
+
+	'dataplane' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); }
+(rule__EndNodePerfSpec__DataplaneAssignment_4_1)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_5__0__Impl
+	rule__EndNodePerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); }
+
+	'controlplane' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); }
+(rule__EndNodePerfSpec__ControlplaneAssignment_5_1)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkTraffic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__0__Impl
+	rule__NetworkTraffic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__1__Impl
+	rule__NetworkTraffic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); }
+
+	'NetworkTraffic' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__2__Impl
+	rule__NetworkTraffic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__3__Impl
+	rule__NetworkTraffic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_3()); }
+(rule__NetworkTraffic__Group_3__0)?
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__4__Impl
+	rule__NetworkTraffic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_4()); }
+(rule__NetworkTraffic__Group_4__0)?
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__0__Impl
+	rule__NetworkTraffic__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); }
+
+	'flows' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__1__Impl
+	rule__NetworkTraffic__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__2__Impl
+	rule__NetworkTraffic__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); }
+(rule__NetworkTraffic__FlowsAssignment_3_2)
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__3__Impl
+	rule__NetworkTraffic__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); }
+(rule__NetworkTraffic__Group_3_3__0)*
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3_3__0__Impl
+	rule__NetworkTraffic__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); }
+(rule__NetworkTraffic__FlowsAssignment_3_3_1)
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkTraffic__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__0__Impl
+	rule__NetworkTraffic__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__1__Impl
+	rule__NetworkTraffic__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__2__Impl
+	rule__NetworkTraffic__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); }
+(rule__NetworkTraffic__SoftwareAssignment_4_2)
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__3__Impl
+	rule__NetworkTraffic__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); }
+(rule__NetworkTraffic__Group_4_3__0)*
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4_3__0__Impl
+	rule__NetworkTraffic__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); }
+(rule__NetworkTraffic__SoftwareAssignment_4_3_1)
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkStructure__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__0__Impl
+	rule__NetworkStructure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__1__Impl
+	rule__NetworkStructure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); }
+
+	'NetworkStructure' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__2__Impl
+	rule__NetworkStructure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__3__Impl
+	rule__NetworkStructure__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_3()); }
+(rule__NetworkStructure__Group_3__0)?
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__4__Impl
+	rule__NetworkStructure__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_4()); }
+(rule__NetworkStructure__Group_4__0)?
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__0__Impl
+	rule__NetworkStructure__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); }
+
+	'nodes' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__1__Impl
+	rule__NetworkStructure__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__2__Impl
+	rule__NetworkStructure__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); }
+(rule__NetworkStructure__NodesAssignment_3_2)
+{ after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__3__Impl
+	rule__NetworkStructure__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); }
+(rule__NetworkStructure__Group_3_3__0)*
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3_3__0__Impl
+	rule__NetworkStructure__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); }
+(rule__NetworkStructure__NodesAssignment_3_3_1)
+{ after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkStructure__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__0__Impl
+	rule__NetworkStructure__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); }
+
+	'links' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__1__Impl
+	rule__NetworkStructure__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__2__Impl
+	rule__NetworkStructure__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); }
+(rule__NetworkStructure__LinksAssignment_4_2)
+{ after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__3__Impl
+	rule__NetworkStructure__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); }
+(rule__NetworkStructure__Group_4_3__0)*
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4_3__0__Impl
+	rule__NetworkStructure__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); }
+(rule__NetworkStructure__LinksAssignment_4_3_1)
+{ after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkConfiguration__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__0__Impl
+	rule__NetworkConfiguration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); }
+
+	'NetworkConfiguration' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__1__Impl
+	rule__NetworkConfiguration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__2__Impl
+	rule__NetworkConfiguration__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); }
+
+	'protocolsAndStacks' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__3__Impl
+	rule__NetworkConfiguration__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); }
+(rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3)
+{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__4__Impl
+	rule__NetworkConfiguration__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); }
+
+	'routes' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__5__Impl
+	rule__NetworkConfiguration__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); }
+(rule__NetworkConfiguration__RoutesAssignment_5)
+{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ExperimentParam__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__0__Impl
+	rule__ExperimentParam__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); }
+
+	'ExperimentParam' 
+
+{ after(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__1__Impl
+	rule__ExperimentParam__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); }
+(rule__ExperimentParam__NameAssignment_1)
+{ after(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__2__Impl
+	rule__ExperimentParam__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__3__Impl
+	rule__ExperimentParam__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); }
+
+	'value' 
+
+{ after(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__4__Impl
+	rule__ExperimentParam__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); }
+(rule__ExperimentParam__ValueAssignment_4)
+{ after(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__0__Impl
+	rule__SoftwareComponent__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); }
+
+	'SoftwareComponent' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__1__Impl
+	rule__SoftwareComponent__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); }
+(rule__SoftwareComponent__IdAssignment_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__2__Impl
+	rule__SoftwareComponent__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__3__Impl
+	rule__SoftwareComponent__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__4__Impl
+	rule__SoftwareComponent__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); }
+(rule__SoftwareComponent__NameAssignment_4)
+{ after(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__5__Impl
+	rule__SoftwareComponent__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_5()); }
+(rule__SoftwareComponent__Group_5__0)?
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__6__Impl
+	rule__SoftwareComponent__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); }
+
+	'deployedOn' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__7__Impl
+	rule__SoftwareComponent__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); }
+(rule__SoftwareComponent__DeployedOnAssignment_7)
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__8__Impl
+	rule__SoftwareComponent__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_8()); }
+(rule__SoftwareComponent__Group_8__0)?
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__0__Impl
+	rule__SoftwareComponent__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__1__Impl
+	rule__SoftwareComponent__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__2__Impl
+	rule__SoftwareComponent__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__SoftwareComponent__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__3__Impl
+	rule__SoftwareComponent__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); }
+(rule__SoftwareComponent__Group_5_3__0)*
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5_3__0__Impl
+	rule__SoftwareComponent__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SoftwareComponent__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__0__Impl
+	rule__SoftwareComponent__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); }
+
+	'trafficSources' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__1__Impl
+	rule__SoftwareComponent__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__2__Impl
+	rule__SoftwareComponent__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); }
+(rule__SoftwareComponent__TrafficSourcesAssignment_8_2)
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__3__Impl
+	rule__SoftwareComponent__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); }
+(rule__SoftwareComponent__Group_8_3__0)*
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8_3__0__Impl
+	rule__SoftwareComponent__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); }
+(rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EntityAddress__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__0__Impl
+	rule__EntityAddress__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); }
+(
+
+)
+{ after(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__1__Impl
+	rule__EntityAddress__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); }
+
+	'EntityAddress' 
+
+{ after(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__2__Impl
+	rule__EntityAddress__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__3__Impl
+	rule__EntityAddress__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup_3()); }
+(rule__EntityAddress__Group_3__0)?
+{ after(grammarAccess.getEntityAddressAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__4__Impl
+	rule__EntityAddress__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup_4()); }
+(rule__EntityAddress__Group_4__0)?
+{ after(grammarAccess.getEntityAddressAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EntityAddress__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_3__0__Impl
+	rule__EntityAddress__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); }
+
+	'address' 
+
+{ after(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); }
+(rule__EntityAddress__AddressAssignment_3_1)
+{ after(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EntityAddress__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_4__0__Impl
+	rule__EntityAddress__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); }
+
+	'addressGivenBy' 
+
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); }
+(rule__EntityAddress__AddressGivenByAssignment_4_1)
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__0__Impl
+	rule__ONOFFFlow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); }
+(rule__ONOFFFlow__StartStateAssignment_0)
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__1__Impl
+	rule__ONOFFFlow__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); }
+
+	'ONOFFFlow' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__2__Impl
+	rule__ONOFFFlow__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); }
+(rule__ONOFFFlow__IdAssignment_2)
+{ after(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__3__Impl
+	rule__ONOFFFlow__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__4__Impl
+	rule__ONOFFFlow__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); }
+
+	'name' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__5__Impl
+	rule__ONOFFFlow__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); }
+(rule__ONOFFFlow__NameAssignment_5)
+{ after(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__6__Impl
+	rule__ONOFFFlow__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_6()); }
+(rule__ONOFFFlow__Group_6__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__7__Impl
+	rule__ONOFFFlow__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_7()); }
+(rule__ONOFFFlow__Group_7__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__8__Impl
+	rule__ONOFFFlow__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_8()); }
+(rule__ONOFFFlow__Group_8__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__9__Impl
+	rule__ONOFFFlow__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_9()); }
+(rule__ONOFFFlow__Group_9__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__10__Impl
+	rule__ONOFFFlow__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); }
+
+	'ONstateIAT' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__11__Impl
+	rule__ONOFFFlow__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); }
+(rule__ONOFFFlow__ONstateIATAssignment_11)
+{ after(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__12__Impl
+	rule__ONOFFFlow__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); }
+
+	'ONstateDuration' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__13__Impl
+	rule__ONOFFFlow__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); }
+(rule__ONOFFFlow__ONstateDurationAssignment_13)
+{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__14__Impl
+	rule__ONOFFFlow__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); }
+
+	'OFFstateDuration' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__15__Impl
+	rule__ONOFFFlow__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); }
+(rule__ONOFFFlow__OFFstateDurationAssignment_15)
+{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__16__Impl
+	rule__ONOFFFlow__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); }
+
+	'packetLength' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__17__Impl
+	rule__ONOFFFlow__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); }
+(rule__ONOFFFlow__PacketLengthAssignment_17)
+{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__18__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__0__Impl
+	rule__ONOFFFlow__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__1__Impl
+	rule__ONOFFFlow__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__2__Impl
+	rule__ONOFFFlow__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); }
+(rule__ONOFFFlow__AlternativeNamesAssignment_6_2)
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__3__Impl
+	rule__ONOFFFlow__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); }
+(rule__ONOFFFlow__Group_6_3__0)*
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6_3__0__Impl
+	rule__ONOFFFlow__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); }
+(rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1)
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_7__0__Impl
+	rule__ONOFFFlow__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); }
+
+	'destinationSoftwareComponent' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); }
+(rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_8__0__Impl
+	rule__ONOFFFlow__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); }
+
+	'sourceSoftwareComponent' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); }
+(rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1)
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__0__Impl
+	rule__ONOFFFlow__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); }
+
+	'destinationAddresses' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__1__Impl
+	rule__ONOFFFlow__Group_9__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__2__Impl
+	rule__ONOFFFlow__Group_9__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); }
+(rule__ONOFFFlow__DestinationAddressesAssignment_9_2)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__3__Impl
+	rule__ONOFFFlow__Group_9__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); }
+(rule__ONOFFFlow__Group_9_3__0)*
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_9_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9_3__0__Impl
+	rule__ONOFFFlow__Group_9_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); }
+(rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__0__Impl
+	rule__GenericFlow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); }
+
+	'GenericFlow' 
+
+{ after(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__1__Impl
+	rule__GenericFlow__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); }
+(rule__GenericFlow__IdAssignment_1)
+{ after(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__2__Impl
+	rule__GenericFlow__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__3__Impl
+	rule__GenericFlow__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__4__Impl
+	rule__GenericFlow__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); }
+(rule__GenericFlow__NameAssignment_4)
+{ after(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__5__Impl
+	rule__GenericFlow__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_5()); }
+(rule__GenericFlow__Group_5__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__6__Impl
+	rule__GenericFlow__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_6()); }
+(rule__GenericFlow__Group_6__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__7__Impl
+	rule__GenericFlow__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_7()); }
+(rule__GenericFlow__Group_7__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__8__Impl
+	rule__GenericFlow__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_8()); }
+(rule__GenericFlow__Group_8__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__9__Impl
+	rule__GenericFlow__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); }
+
+	'dataSize' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__10__Impl
+	rule__GenericFlow__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); }
+(rule__GenericFlow__DataSizeAssignment_10)
+{ after(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__0__Impl
+	rule__GenericFlow__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__1__Impl
+	rule__GenericFlow__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__2__Impl
+	rule__GenericFlow__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__GenericFlow__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__3__Impl
+	rule__GenericFlow__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_5_3()); }
+(rule__GenericFlow__Group_5_3__0)*
+{ after(grammarAccess.getGenericFlowAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5_3__0__Impl
+	rule__GenericFlow__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__GenericFlow__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_6__0__Impl
+	rule__GenericFlow__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); }
+
+	'destinationSoftwareComponent' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); }
+(rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_7__0__Impl
+	rule__GenericFlow__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); }
+
+	'sourceSoftwareComponent' 
+
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); }
+(rule__GenericFlow__SourceSoftwareComponentAssignment_7_1)
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__0__Impl
+	rule__GenericFlow__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); }
+
+	'destinationAddresses' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__1__Impl
+	rule__GenericFlow__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__2__Impl
+	rule__GenericFlow__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); }
+(rule__GenericFlow__DestinationAddressesAssignment_8_2)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__3__Impl
+	rule__GenericFlow__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_8_3()); }
+(rule__GenericFlow__Group_8_3__0)*
+{ after(grammarAccess.getGenericFlowAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8_3__0__Impl
+	rule__GenericFlow__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); }
+(rule__GenericFlow__DestinationAddressesAssignment_8_3_1)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkProtocol__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__0__Impl
+	rule__NetworkProtocol__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); }
+(rule__NetworkProtocol__DeliveryGuaranteedAssignment_0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__1__Impl
+	rule__NetworkProtocol__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); }
+
+	'NetworkProtocol' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__2__Impl
+	rule__NetworkProtocol__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); }
+(rule__NetworkProtocol__NameAssignment_2)
+{ after(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__3__Impl
+	rule__NetworkProtocol__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__4__Impl
+	rule__NetworkProtocol__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_4()); }
+(rule__NetworkProtocol__Group_4__0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__5__Impl
+	rule__NetworkProtocol__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); }
+
+	'mtu' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__6__Impl
+	rule__NetworkProtocol__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); }
+(rule__NetworkProtocol__MtuAssignment_6)
+{ after(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__7__Impl
+	rule__NetworkProtocol__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); }
+
+	'headersLength' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__8__Impl
+	rule__NetworkProtocol__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); }
+(rule__NetworkProtocol__HeadersLengthAssignment_8)
+{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__9__Impl
+	rule__NetworkProtocol__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); }
+
+	'dataUnitLength' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__10__Impl
+	rule__NetworkProtocol__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); }
+(rule__NetworkProtocol__DataUnitLengthAssignment_10)
+{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__11__Impl
+	rule__NetworkProtocol__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_11()); }
+(rule__NetworkProtocol__Group_11__0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkProtocol__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__0__Impl
+	rule__NetworkProtocol__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__1__Impl
+	rule__NetworkProtocol__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__2__Impl
+	rule__NetworkProtocol__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); }
+(rule__NetworkProtocol__AlternativeNamesAssignment_4_2)
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__3__Impl
+	rule__NetworkProtocol__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); }
+(rule__NetworkProtocol__Group_4_3__0)*
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkProtocol__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4_3__0__Impl
+	rule__NetworkProtocol__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); }
+(rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1)
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkProtocol__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_11__0__Impl
+	rule__NetworkProtocol__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); }
+
+	'connectionless' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); }
+(rule__NetworkProtocol__ConnectionlessAssignment_11_1)
+{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EInt__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__0__Impl
+	rule__EInt__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EInt__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConstantDoubleVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__0__Impl
+	rule__ConstantDoubleVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); }
+
+	'ConstantDoubleVariable' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__1__Impl
+	rule__ConstantDoubleVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__2__Impl
+	rule__ConstantDoubleVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); }
+
+	'value' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__3__Impl
+	rule__ConstantDoubleVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); }
+(rule__ConstantDoubleVariable__ValueAssignment_3)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__4__Impl
+	rule__ConstantDoubleVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); }
+(rule__ConstantDoubleVariable__Group_4__0)?
+{ after(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConstantDoubleVariable__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group_4__0__Impl
+	rule__ConstantDoubleVariable__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); }
+(rule__ConstantDoubleVariable__UnitAssignment_4_1)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConstantLongVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__0__Impl
+	rule__ConstantLongVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); }
+
+	'ConstantLongVariable' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__1__Impl
+	rule__ConstantLongVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__2__Impl
+	rule__ConstantLongVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); }
+
+	'value' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__3__Impl
+	rule__ConstantLongVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); }
+(rule__ConstantLongVariable__ValueAssignment_3)
+{ after(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__4__Impl
+	rule__ConstantLongVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getGroup_4()); }
+(rule__ConstantLongVariable__Group_4__0)?
+{ after(grammarAccess.getConstantLongVariableAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConstantLongVariable__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group_4__0__Impl
+	rule__ConstantLongVariable__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); }
+(rule__ConstantLongVariable__UnitAssignment_4_1)
+{ after(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RandomVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__0__Impl
+	rule__RandomVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); }
+
+	'RandomVariable' 
+
+{ after(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__1__Impl
+	rule__RandomVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__2__Impl
+	rule__RandomVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getGroup_2()); }
+(rule__RandomVariable__Group_2__0)?
+{ after(grammarAccess.getRandomVariableAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__3__Impl
+	rule__RandomVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); }
+
+	'cdf' 
+
+{ after(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__4__Impl
+	rule__RandomVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); }
+(rule__RandomVariable__CdfAssignment_4)
+{ after(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RandomVariable__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group_2__0__Impl
+	rule__RandomVariable__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); }
+(rule__RandomVariable__UnitAssignment_2_1)
+{ after(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ContinuousFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__0__Impl
+	rule__ContinuousFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); }
+
+	'ContinuousFunction' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__1__Impl
+	rule__ContinuousFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__2__Impl
+	rule__ContinuousFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); }
+
+	'numArgs' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__3__Impl
+	rule__ContinuousFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); }
+(rule__ContinuousFunction__NumArgsAssignment_3)
+{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__4__Impl
+	rule__ContinuousFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); }
+
+	'equation' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__5__Impl
+	rule__ContinuousFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); }
+(rule__ContinuousFunction__EquationAssignment_5)
+{ after(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__6__Impl
+	rule__ContinuousFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getGroup_6()); }
+(rule__ContinuousFunction__Group_6__0)?
+{ after(grammarAccess.getContinuousFunctionAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ContinuousFunction__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group_6__0__Impl
+	rule__ContinuousFunction__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); }
+(rule__ContinuousFunction__UnitAssignment_6_1)
+{ after(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DiscreteFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__0__Impl
+	rule__DiscreteFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); }
+
+	'DiscreteFunction' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__1__Impl
+	rule__DiscreteFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__2__Impl
+	rule__DiscreteFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); }
+
+	'numArgs' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__3__Impl
+	rule__DiscreteFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); }
+(rule__DiscreteFunction__NumArgsAssignment_3)
+{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__4__Impl
+	rule__DiscreteFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); }
+(rule__DiscreteFunction__Group_4__0)?
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__5__Impl
+	rule__DiscreteFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); }
+
+	'x' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__6__Impl
+	rule__DiscreteFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); }
+
+	'{' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__7__Impl
+	rule__DiscreteFunction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); }
+(rule__DiscreteFunction__XAssignment_7)
+{ after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__8__Impl
+	rule__DiscreteFunction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); }
+(rule__DiscreteFunction__Group_8__0)*
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__9__Impl
+	rule__DiscreteFunction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__10__Impl
+	rule__DiscreteFunction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); }
+
+	'y' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__11__Impl
+	rule__DiscreteFunction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); }
+(rule__DiscreteFunction__YAssignment_11)
+{ after(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DiscreteFunction__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_4__0__Impl
+	rule__DiscreteFunction__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); }
+(rule__DiscreteFunction__UnitAssignment_4_1)
+{ after(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DiscreteFunction__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_8__0__Impl
+	rule__DiscreteFunction__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); }
+(rule__DiscreteFunction__XAssignment_8_1)
+{ after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EFloat__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__0__Impl
+	rule__EFloat__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__1__Impl
+	rule__EFloat__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__2__Impl
+	rule__EFloat__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__3__Impl
+	rule__EFloat__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getGroup_4()); }
+(rule__EFloat__Group_4__0)?
+{ after(grammarAccess.getEFloatAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EFloat__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__0__Impl
+	rule__EFloat__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getAlternatives_4_0()); }
+(rule__EFloat__Alternatives_4_0)
+{ after(grammarAccess.getEFloatAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__1__Impl
+	rule__EFloat__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__SpeedUnit__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__0__Impl
+	rule__SpeedUnit__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); }
+
+	'SpeedUnit' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__1__Impl
+	rule__SpeedUnit__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__2__Impl
+	rule__SpeedUnit__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); }
+
+	'prefix' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__3__Impl
+	rule__SpeedUnit__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); }
+(rule__SpeedUnit__PrefixAssignment_3)
+{ after(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__4__Impl
+	rule__SpeedUnit__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); }
+
+	'value' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__5__Impl
+	rule__SpeedUnit__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); }
+(rule__SpeedUnit__ValueAssignment_5)
+{ after(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__6__Impl
+	rule__SpeedUnit__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); }
+
+	'unit' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__7__Impl
+	rule__SpeedUnit__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); }
+(rule__SpeedUnit__UnitAssignment_7)
+{ after(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__0__Impl
+	rule__EDouble__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__1__Impl
+	rule__EDouble__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__2__Impl
+	rule__EDouble__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__3__Impl
+	rule__EDouble__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup_4()); }
+(rule__EDouble__Group_4__0)?
+{ after(grammarAccess.getEDoubleAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__0__Impl
+	rule__EDouble__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+(rule__EDouble__Alternatives_4_0)
+{ after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__1__Impl
+	rule__EDouble__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ELong__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ELong__Group__0__Impl
+	rule__ELong__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ELong__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ELong__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ELong__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ELong__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataSeries__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__0__Impl
+	rule__DataSeries__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__1__Impl
+	rule__DataSeries__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); }
+
+	'DataSeries' 
+
+{ after(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__2__Impl
+	rule__DataSeries__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__3__Impl
+	rule__DataSeries__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup_3()); }
+(rule__DataSeries__Group_3__0)?
+{ after(grammarAccess.getDataSeriesAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataSeries__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__0__Impl
+	rule__DataSeries__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); }
+
+	'data' 
+
+{ after(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__1__Impl
+	rule__DataSeries__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__2__Impl
+	rule__DataSeries__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); }
+(rule__DataSeries__DataAssignment_3_2)
+{ after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__3__Impl
+	rule__DataSeries__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup_3_3()); }
+(rule__DataSeries__Group_3_3__0)*
+{ after(grammarAccess.getDataSeriesAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataSeries__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3_3__0__Impl
+	rule__DataSeries__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); }
+(rule__DataSeries__DataAssignment_3_3_1)
+{ after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__0__Impl
+	rule__TrafficSource__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); }
+
+	'TrafficSource' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__1__Impl
+	rule__TrafficSource__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); }
+(rule__TrafficSource__IdAssignment_1)
+{ after(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__2__Impl
+	rule__TrafficSource__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__3__Impl
+	rule__TrafficSource__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__4__Impl
+	rule__TrafficSource__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); }
+(rule__TrafficSource__NameAssignment_4)
+{ after(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__5__Impl
+	rule__TrafficSource__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_5()); }
+(rule__TrafficSource__Group_5__0)?
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__6__Impl
+	rule__TrafficSource__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_6()); }
+(rule__TrafficSource__Group_6__0)?
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__7__Impl
+	rule__TrafficSource__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); }
+
+	'workload' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__8__Impl
+	rule__TrafficSource__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__9__Impl
+	rule__TrafficSource__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); }
+(rule__TrafficSource__WorkloadAssignment_9)
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__10__Impl
+	rule__TrafficSource__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_10()); }
+(rule__TrafficSource__Group_10__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__11__Impl
+	rule__TrafficSource__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__0__Impl
+	rule__TrafficSource__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__1__Impl
+	rule__TrafficSource__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__2__Impl
+	rule__TrafficSource__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__TrafficSource__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__3__Impl
+	rule__TrafficSource__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); }
+(rule__TrafficSource__Group_5_3__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5_3__0__Impl
+	rule__TrafficSource__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__TrafficSource__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__0__Impl
+	rule__TrafficSource__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__1__Impl
+	rule__TrafficSource__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__2__Impl
+	rule__TrafficSource__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); }
+(rule__TrafficSource__AddressesAssignment_6_2)
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__3__Impl
+	rule__TrafficSource__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); }
+(rule__TrafficSource__Group_6_3__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6_3__0__Impl
+	rule__TrafficSource__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); }
+(rule__TrafficSource__AddressesAssignment_6_3_1)
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_10__0__Impl
+	rule__TrafficSource__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); }
+(rule__TrafficSource__WorkloadAssignment_10_1)
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericWorkload__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__0__Impl
+	rule__GenericWorkload__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); }
+(
+
+)
+{ after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__1__Impl
+	rule__GenericWorkload__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); }
+
+	'GenericWorkload' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__2__Impl
+	rule__GenericWorkload__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__3__Impl
+	rule__GenericWorkload__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup_3()); }
+(rule__GenericWorkload__Group_3__0)?
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericWorkload__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__0__Impl
+	rule__GenericWorkload__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); }
+
+	'actions' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__1__Impl
+	rule__GenericWorkload__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__2__Impl
+	rule__GenericWorkload__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); }
+(rule__GenericWorkload__ActionsAssignment_3_2)
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__3__Impl
+	rule__GenericWorkload__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); }
+(rule__GenericWorkload__Group_3_3__0)*
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericWorkload__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3_3__0__Impl
+	rule__GenericWorkload__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); }
+(rule__GenericWorkload__ActionsAssignment_3_3_1)
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__BranchAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__0__Impl
+	rule__BranchAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+
+	'BranchAction' 
+
+{ after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__1__Impl
+	rule__BranchAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__2__Impl
+	rule__BranchAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getBranchActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__3__Impl
+	rule__BranchAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__4__Impl
+	rule__BranchAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAssignment_4()); }
+(rule__BranchAction__InternAssignment_4)
+{ after(grammarAccess.getBranchActionAccess().getInternAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__5__Impl
+	rule__BranchAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup_5()); }
+(rule__BranchAction__Group_5__0)*
+{ after(grammarAccess.getBranchActionAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__6__Impl
+	rule__BranchAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__BranchAction__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_5__0__Impl
+	rule__BranchAction__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); }
+
+	',' 
+
+{ after(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); }
+(rule__BranchAction__InternAssignment_5_1)
+{ after(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LoopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__0__Impl
+	rule__LoopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+
+	'LoopAction' 
+
+{ after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__1__Impl
+	rule__LoopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__2__Impl
+	rule__LoopAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getLoopActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__3__Impl
+	rule__LoopAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternAssignment_3()); }
+(rule__LoopAction__InternAssignment_3)
+{ after(grammarAccess.getLoopActionAccess().getInternAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__4__Impl
+	rule__LoopAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); }
+
+	'numIterations' 
+
+{ after(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__5__Impl
+	rule__LoopAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); }
+(rule__LoopAction__NumIterationsAssignment_5)
+{ after(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SequenceAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__0__Impl
+	rule__SequenceAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); }
+
+	'SequenceAction' 
+
+{ after(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__1__Impl
+	rule__SequenceAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__2__Impl
+	rule__SequenceAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__3__Impl
+	rule__SequenceAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__4__Impl
+	rule__SequenceAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); }
+(rule__SequenceAction__InternAssignment_4)
+{ after(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__5__Impl
+	rule__SequenceAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getGroup_5()); }
+(rule__SequenceAction__Group_5__0)*
+{ after(grammarAccess.getSequenceActionAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__6__Impl
+	rule__SequenceAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SequenceAction__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group_5__0__Impl
+	rule__SequenceAction__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); }
+(rule__SequenceAction__InternAssignment_5_1)
+{ after(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StartAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__0__Impl
+	rule__StartAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+
+	'StartAction' 
+
+{ after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__0__Impl
+	rule__StopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+
+	'StopAction' 
+
+{ after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TransmitAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__0__Impl
+	rule__TransmitAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); }
+
+	'TransmitAction' 
+
+{ after(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__1__Impl
+	rule__TransmitAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__2__Impl
+	rule__TransmitAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); }
+
+	'flow' 
+
+{ after(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__3__Impl
+	rule__TransmitAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); }
+(rule__TransmitAction__FlowAssignment_3)
+{ after(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WaitAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__0__Impl
+	rule__WaitAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); }
+
+	'WaitAction' 
+
+{ after(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__1__Impl
+	rule__WaitAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__2__Impl
+	rule__WaitAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); }
+
+	'waitTime' 
+
+{ after(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__3__Impl
+	rule__WaitAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); }
+(rule__WaitAction__WaitTimeAssignment_3)
+{ after(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__0__Impl
+	rule__VirtualNode__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); }
+
+	'VirtualNode' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__1__Impl
+	rule__VirtualNode__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); }
+(rule__VirtualNode__IdAssignment_1)
+{ after(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__2__Impl
+	rule__VirtualNode__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__3__Impl
+	rule__VirtualNode__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__4__Impl
+	rule__VirtualNode__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); }
+(rule__VirtualNode__NameAssignment_4)
+{ after(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__5__Impl
+	rule__VirtualNode__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_5()); }
+(rule__VirtualNode__Group_5__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__6__Impl
+	rule__VirtualNode__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_6()); }
+(rule__VirtualNode__Group_6__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__7__Impl
+	rule__VirtualNode__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); }
+
+	'hostedOn' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__8__Impl
+	rule__VirtualNode__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); }
+(rule__VirtualNode__HostedOnAssignment_8)
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__9__Impl
+	rule__VirtualNode__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__10__Impl
+	rule__VirtualNode__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); }
+(rule__VirtualNode__PerformanceAssignment_10)
+{ after(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__11__Impl
+	rule__VirtualNode__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_11()); }
+(rule__VirtualNode__Group_11__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__0__Impl
+	rule__VirtualNode__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__1__Impl
+	rule__VirtualNode__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__2__Impl
+	rule__VirtualNode__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualNode__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__3__Impl
+	rule__VirtualNode__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); }
+(rule__VirtualNode__Group_5_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5_3__0__Impl
+	rule__VirtualNode__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualNode__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNode__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__0__Impl
+	rule__VirtualNode__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__1__Impl
+	rule__VirtualNode__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__2__Impl
+	rule__VirtualNode__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); }
+(rule__VirtualNode__SoftwareAssignment_6_2)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__3__Impl
+	rule__VirtualNode__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); }
+(rule__VirtualNode__Group_6_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); }
+
+	')' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6_3__0__Impl
+	rule__VirtualNode__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); }
+(rule__VirtualNode__SoftwareAssignment_6_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNode__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__0__Impl
+	rule__VirtualNode__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); }
+
+	'interfaces' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__1__Impl
+	rule__VirtualNode__Group_11__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__2__Impl
+	rule__VirtualNode__Group_11__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); }
+(rule__VirtualNode__InterfacesAssignment_11_2)
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__3__Impl
+	rule__VirtualNode__Group_11__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); }
+(rule__VirtualNode__Group_11_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_11_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11_3__0__Impl
+	rule__VirtualNode__Group_11_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); }
+(rule__VirtualNode__InterfacesAssignment_11_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__0__Impl
+	rule__PhysicalNode__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); }
+
+	'PhysicalNode' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__1__Impl
+	rule__PhysicalNode__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); }
+(rule__PhysicalNode__IdAssignment_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__2__Impl
+	rule__PhysicalNode__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__3__Impl
+	rule__PhysicalNode__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__4__Impl
+	rule__PhysicalNode__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); }
+(rule__PhysicalNode__NameAssignment_4)
+{ after(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__5__Impl
+	rule__PhysicalNode__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_5()); }
+(rule__PhysicalNode__Group_5__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__6__Impl
+	rule__PhysicalNode__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_6()); }
+(rule__PhysicalNode__Group_6__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__7__Impl
+	rule__PhysicalNode__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_7()); }
+(rule__PhysicalNode__Group_7__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__8__Impl
+	rule__PhysicalNode__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__9__Impl
+	rule__PhysicalNode__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); }
+(rule__PhysicalNode__PerformanceAssignment_9)
+{ after(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__10__Impl
+	rule__PhysicalNode__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_10()); }
+(rule__PhysicalNode__Group_10__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__0__Impl
+	rule__PhysicalNode__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__1__Impl
+	rule__PhysicalNode__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__2__Impl
+	rule__PhysicalNode__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalNode__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__3__Impl
+	rule__PhysicalNode__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); }
+(rule__PhysicalNode__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5_3__0__Impl
+	rule__PhysicalNode__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalNode__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__0__Impl
+	rule__PhysicalNode__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__1__Impl
+	rule__PhysicalNode__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__2__Impl
+	rule__PhysicalNode__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); }
+(rule__PhysicalNode__SoftwareAssignment_6_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__3__Impl
+	rule__PhysicalNode__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); }
+(rule__PhysicalNode__Group_6_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6_3__0__Impl
+	rule__PhysicalNode__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); }
+(rule__PhysicalNode__SoftwareAssignment_6_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__0__Impl
+	rule__PhysicalNode__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); }
+
+	'hosts' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__1__Impl
+	rule__PhysicalNode__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__2__Impl
+	rule__PhysicalNode__Group_7__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); }
+(rule__PhysicalNode__HostsAssignment_7_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__3__Impl
+	rule__PhysicalNode__Group_7__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); }
+(rule__PhysicalNode__Group_7_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_7_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7_3__0__Impl
+	rule__PhysicalNode__Group_7_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); }
+(rule__PhysicalNode__HostsAssignment_7_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__0__Impl
+	rule__PhysicalNode__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); }
+
+	'interfaces' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__1__Impl
+	rule__PhysicalNode__Group_10__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__2__Impl
+	rule__PhysicalNode__Group_10__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); }
+(rule__PhysicalNode__InterfacesAssignment_10_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__3__Impl
+	rule__PhysicalNode__Group_10__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); }
+(rule__PhysicalNode__Group_10_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_10_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10_3__0__Impl
+	rule__PhysicalNode__Group_10_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); }
+(rule__PhysicalNode__InterfacesAssignment_10_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLink__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__0__Impl
+	rule__PhysicalLink__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); }
+
+	'PhysicalLink' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__1__Impl
+	rule__PhysicalLink__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); }
+(rule__PhysicalLink__IdAssignment_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__2__Impl
+	rule__PhysicalLink__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__3__Impl
+	rule__PhysicalLink__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__4__Impl
+	rule__PhysicalLink__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); }
+(rule__PhysicalLink__NameAssignment_4)
+{ after(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__5__Impl
+	rule__PhysicalLink__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_5()); }
+(rule__PhysicalLink__Group_5__0)?
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__6__Impl
+	rule__PhysicalLink__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); }
+
+	'connects' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__7__Impl
+	rule__PhysicalLink__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__8__Impl
+	rule__PhysicalLink__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); }
+(rule__PhysicalLink__ConnectsAssignment_8)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__9__Impl
+	rule__PhysicalLink__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_9()); }
+(rule__PhysicalLink__Group_9__0)*
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__10__Impl
+	rule__PhysicalLink__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__11__Impl
+	rule__PhysicalLink__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__12__Impl
+	rule__PhysicalLink__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); }
+(rule__PhysicalLink__PerformanceAssignment_12)
+{ after(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLink__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__0__Impl
+	rule__PhysicalLink__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__1__Impl
+	rule__PhysicalLink__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__2__Impl
+	rule__PhysicalLink__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalLink__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__3__Impl
+	rule__PhysicalLink__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); }
+(rule__PhysicalLink__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLink__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5_3__0__Impl
+	rule__PhysicalLink__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalLink__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLink__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_9__0__Impl
+	rule__PhysicalLink__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); }
+(rule__PhysicalLink__ConnectsAssignment_9_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualLink__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__0__Impl
+	rule__VirtualLink__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); }
+
+	'VirtualLink' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__1__Impl
+	rule__VirtualLink__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); }
+(rule__VirtualLink__IdAssignment_1)
+{ after(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__2__Impl
+	rule__VirtualLink__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__3__Impl
+	rule__VirtualLink__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__4__Impl
+	rule__VirtualLink__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); }
+(rule__VirtualLink__NameAssignment_4)
+{ after(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__5__Impl
+	rule__VirtualLink__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_5()); }
+(rule__VirtualLink__Group_5__0)?
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__6__Impl
+	rule__VirtualLink__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); }
+
+	'connects' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__7__Impl
+	rule__VirtualLink__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); }
+
+	'(' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__8__Impl
+	rule__VirtualLink__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); }
+(rule__VirtualLink__ConnectsAssignment_8)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__9__Impl
+	rule__VirtualLink__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_9()); }
+(rule__VirtualLink__Group_9__0)*
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__10__Impl
+	rule__VirtualLink__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__11__Impl
+	rule__VirtualLink__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__12__Impl
+	rule__VirtualLink__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); }
+(rule__VirtualLink__PerformanceAssignment_12)
+{ after(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLink__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__0__Impl
+	rule__VirtualLink__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__1__Impl
+	rule__VirtualLink__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__2__Impl
+	rule__VirtualLink__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualLink__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__3__Impl
+	rule__VirtualLink__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); }
+(rule__VirtualLink__Group_5_3__0)*
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLink__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5_3__0__Impl
+	rule__VirtualLink__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualLink__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualLink__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_9__0__Impl
+	rule__VirtualLink__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); }
+(rule__VirtualLink__ConnectsAssignment_9_1)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolsRepository__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__0__Impl
+	rule__ProtocolsRepository__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); }
+
+	'ProtocolsRepository' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__1__Impl
+	rule__ProtocolsRepository__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__2__Impl
+	rule__ProtocolsRepository__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); }
+(rule__ProtocolsRepository__Group_2__0)?
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__3__Impl
+	rule__ProtocolsRepository__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); }
+
+	'protocols' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__4__Impl
+	rule__ProtocolsRepository__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__5__Impl
+	rule__ProtocolsRepository__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); }
+(rule__ProtocolsRepository__ProtocolsAssignment_5)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__6__Impl
+	rule__ProtocolsRepository__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); }
+(rule__ProtocolsRepository__Group_6__0)*
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__7__Impl
+	rule__ProtocolsRepository__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__0__Impl
+	rule__ProtocolsRepository__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); }
+
+	'stacks' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__1__Impl
+	rule__ProtocolsRepository__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__2__Impl
+	rule__ProtocolsRepository__Group_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); }
+(rule__ProtocolsRepository__StacksAssignment_2_2)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__3__Impl
+	rule__ProtocolsRepository__Group_2__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); }
+(rule__ProtocolsRepository__Group_2_3__0)*
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_2_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2_3__0__Impl
+	rule__ProtocolsRepository__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); }
+(rule__ProtocolsRepository__StacksAssignment_2_3_1)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_6__0__Impl
+	rule__ProtocolsRepository__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); }
+(rule__ProtocolsRepository__ProtocolsAssignment_6_1)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__0__Impl
+	rule__RoutesRepository__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); }
+(
+
+)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__1__Impl
+	rule__RoutesRepository__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); }
+
+	'RoutesRepository' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__2__Impl
+	rule__RoutesRepository__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__3__Impl
+	rule__RoutesRepository__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); }
+(rule__RoutesRepository__Group_3__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__4__Impl
+	rule__RoutesRepository__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); }
+(rule__RoutesRepository__Group_4__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__5__Impl
+	rule__RoutesRepository__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); }
+(rule__RoutesRepository__Group_5__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__0__Impl
+	rule__RoutesRepository__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); }
+
+	'routes' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__1__Impl
+	rule__RoutesRepository__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__2__Impl
+	rule__RoutesRepository__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); }
+(rule__RoutesRepository__RoutesAssignment_3_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__3__Impl
+	rule__RoutesRepository__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); }
+(rule__RoutesRepository__Group_3_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3_3__0__Impl
+	rule__RoutesRepository__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); }
+(rule__RoutesRepository__RoutesAssignment_3_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__0__Impl
+	rule__RoutesRepository__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); }
+
+	'flowRoutes' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__1__Impl
+	rule__RoutesRepository__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__2__Impl
+	rule__RoutesRepository__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); }
+(rule__RoutesRepository__FlowRoutesAssignment_4_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__3__Impl
+	rule__RoutesRepository__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); }
+(rule__RoutesRepository__Group_4_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4_3__0__Impl
+	rule__RoutesRepository__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); }
+(rule__RoutesRepository__FlowRoutesAssignment_4_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__0__Impl
+	rule__RoutesRepository__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); }
+
+	'directions' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__1__Impl
+	rule__RoutesRepository__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__2__Impl
+	rule__RoutesRepository__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); }
+(rule__RoutesRepository__DirectionsAssignment_5_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__3__Impl
+	rule__RoutesRepository__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); }
+(rule__RoutesRepository__Group_5_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5_3__0__Impl
+	rule__RoutesRepository__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); }
+(rule__RoutesRepository__DirectionsAssignment_5_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolStack__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__0__Impl
+	rule__ProtocolStack__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); }
+
+	'ProtocolStack' 
+
+{ after(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__1__Impl
+	rule__ProtocolStack__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); }
+(rule__ProtocolStack__NameAssignment_1)
+{ after(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__2__Impl
+	rule__ProtocolStack__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__3__Impl
+	rule__ProtocolStack__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_3()); }
+(rule__ProtocolStack__Group_3__0)?
+{ after(grammarAccess.getProtocolStackAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__4__Impl
+	rule__ProtocolStack__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); }
+
+	'layers' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__5__Impl
+	rule__ProtocolStack__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__6__Impl
+	rule__ProtocolStack__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); }
+(rule__ProtocolStack__LayersAssignment_6)
+{ after(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__7__Impl
+	rule__ProtocolStack__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_7()); }
+(rule__ProtocolStack__Group_7__0)*
+{ after(grammarAccess.getProtocolStackAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__8__Impl
+	rule__ProtocolStack__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolStack__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__0__Impl
+	rule__ProtocolStack__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__1__Impl
+	rule__ProtocolStack__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__2__Impl
+	rule__ProtocolStack__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); }
+(rule__ProtocolStack__AlternativeNamesAssignment_3_2)
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__3__Impl
+	rule__ProtocolStack__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_3_3()); }
+(rule__ProtocolStack__Group_3_3__0)*
+{ after(grammarAccess.getProtocolStackAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolStack__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3_3__0__Impl
+	rule__ProtocolStack__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); }
+(rule__ProtocolStack__AlternativeNamesAssignment_3_3_1)
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolStack__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_7__0__Impl
+	rule__ProtocolStack__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); }
+(rule__ProtocolStack__LayersAssignment_7_1)
+{ after(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__0__Impl
+	rule__ProtocolLayer__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); }
+
+	'ProtocolLayer' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__1__Impl
+	rule__ProtocolLayer__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); }
+(rule__ProtocolLayer__NameAssignment_1)
+{ after(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__2__Impl
+	rule__ProtocolLayer__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__3__Impl
+	rule__ProtocolLayer__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_3()); }
+(rule__ProtocolLayer__Group_3__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__4__Impl
+	rule__ProtocolLayer__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); }
+
+	'protocol' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__5__Impl
+	rule__ProtocolLayer__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); }
+(rule__ProtocolLayer__ProtocolAssignment_5)
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__6__Impl
+	rule__ProtocolLayer__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_6()); }
+(rule__ProtocolLayer__Group_6__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__7__Impl
+	rule__ProtocolLayer__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_7()); }
+(rule__ProtocolLayer__Group_7__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolLayer__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__0__Impl
+	rule__ProtocolLayer__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__1__Impl
+	rule__ProtocolLayer__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__2__Impl
+	rule__ProtocolLayer__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); }
+(rule__ProtocolLayer__AlternativeNamesAssignment_3_2)
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__3__Impl
+	rule__ProtocolLayer__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); }
+(rule__ProtocolLayer__Group_3_3__0)*
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolLayer__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3_3__0__Impl
+	rule__ProtocolLayer__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); }
+(rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1)
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_6__0__Impl
+	rule__ProtocolLayer__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); }
+
+	'isCarriedBy' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); }
+(rule__ProtocolLayer__IsCarriedByAssignment_6_1)
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_7__0__Impl
+	rule__ProtocolLayer__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); }
+
+	'carries' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); }
+(rule__ProtocolLayer__CarriesAssignment_7_1)
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__0__Impl
+	rule__Route__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRouteKeyword_0()); }
+
+	'Route' 
+
+{ after(grammarAccess.getRouteAccess().getRouteKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__1__Impl
+	rule__Route__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getIdAssignment_1()); }
+(rule__Route__IdAssignment_1)
+{ after(grammarAccess.getRouteAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__2__Impl
+	rule__Route__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__3__Impl
+	rule__Route__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getRouteAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__4__Impl
+	rule__Route__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameAssignment_4()); }
+(rule__Route__NameAssignment_4)
+{ after(grammarAccess.getRouteAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__5__Impl
+	rule__Route__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_5()); }
+(rule__Route__Group_5__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__6__Impl
+	rule__Route__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_6()); }
+(rule__Route__Group_6__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__7__Impl
+	rule__Route__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartKeyword_7()); }
+
+	'start' 
+
+{ after(grammarAccess.getRouteAccess().getStartKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__8__Impl
+	rule__Route__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartAssignment_8()); }
+(rule__Route__StartAssignment_8)
+{ after(grammarAccess.getRouteAccess().getStartAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__9__Impl
+	rule__Route__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndKeyword_9()); }
+
+	'end' 
+
+{ after(grammarAccess.getRouteAccess().getEndKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__10__Impl
+	rule__Route__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndAssignment_10()); }
+(rule__Route__EndAssignment_10)
+{ after(grammarAccess.getRouteAccess().getEndAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__11__Impl
+	rule__Route__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_11()); }
+(rule__Route__Group_11__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Route__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__0__Impl
+	rule__Route__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__1__Impl
+	rule__Route__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__2__Impl
+	rule__Route__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__Route__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__3__Impl
+	rule__Route__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_5_3()); }
+(rule__Route__Group_5_3__0)*
+{ after(grammarAccess.getRouteAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Route__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5_3__0__Impl
+	rule__Route__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__Route__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_6__0__Impl
+	rule__Route__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); }
+
+	'numHops' 
+
+{ after(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); }
+(rule__Route__NumHopsAssignment_6_1)
+{ after(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_11__0__Impl
+	rule__Route__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); }
+
+	'hops' 
+
+{ after(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); }
+(rule__Route__HopsAssignment_11_1)
+{ after(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__0__Impl
+	rule__FlowRoute__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); }
+
+	'FlowRoute' 
+
+{ after(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__1__Impl
+	rule__FlowRoute__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); }
+(rule__FlowRoute__IdAssignment_1)
+{ after(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__2__Impl
+	rule__FlowRoute__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__3__Impl
+	rule__FlowRoute__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__4__Impl
+	rule__FlowRoute__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); }
+(rule__FlowRoute__NameAssignment_4)
+{ after(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__5__Impl
+	rule__FlowRoute__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_5()); }
+(rule__FlowRoute__Group_5__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__6__Impl
+	rule__FlowRoute__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_6()); }
+(rule__FlowRoute__Group_6__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__7__Impl
+	rule__FlowRoute__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); }
+
+	'flow' 
+
+{ after(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__8__Impl
+	rule__FlowRoute__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); }
+(rule__FlowRoute__FlowAssignment_8)
+{ after(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__9__Impl
+	rule__FlowRoute__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); }
+
+	'start' 
+
+{ after(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__10__Impl
+	rule__FlowRoute__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); }
+(rule__FlowRoute__StartAssignment_10)
+{ after(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__11__Impl
+	rule__FlowRoute__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); }
+
+	'end' 
+
+{ after(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__12__Impl
+	rule__FlowRoute__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); }
+(rule__FlowRoute__EndAssignment_12)
+{ after(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__13__Impl
+	rule__FlowRoute__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_13()); }
+(rule__FlowRoute__Group_13__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__14__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); }
+
+	'}' 
+
+{ after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowRoute__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__0__Impl
+	rule__FlowRoute__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__1__Impl
+	rule__FlowRoute__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__2__Impl
+	rule__FlowRoute__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__FlowRoute__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__3__Impl
+	rule__FlowRoute__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_5_3()); }
+(rule__FlowRoute__Group_5_3__0)*
+{ after(grammarAccess.getFlowRouteAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowRoute__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5_3__0__Impl
+	rule__FlowRoute__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__FlowRoute__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_6__0__Impl
+	rule__FlowRoute__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); }
+
+	'numHops' 
+
+{ after(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); }
+(rule__FlowRoute__NumHopsAssignment_6_1)
+{ after(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group_13__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_13__0__Impl
+	rule__FlowRoute__Group_13__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_13__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); }
+
+	'hops' 
+
+{ after(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_13__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_13__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_13__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); }
+(rule__FlowRoute__HopsAssignment_13_1)
+{ after(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__0__Impl
+	rule__Direction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); }
+(rule__Direction__IsDefaultAssignment_0)?
+{ after(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__1__Impl
+	rule__Direction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); }
+
+	'Direction' 
+
+{ after(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__2__Impl
+	rule__Direction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIdAssignment_2()); }
+(rule__Direction__IdAssignment_2)
+{ after(grammarAccess.getDirectionAccess().getIdAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__3__Impl
+	rule__Direction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__4__Impl
+	rule__Direction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameKeyword_4()); }
+
+	'name' 
+
+{ after(grammarAccess.getDirectionAccess().getNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__5__Impl
+	rule__Direction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameAssignment_5()); }
+(rule__Direction__NameAssignment_5)
+{ after(grammarAccess.getDirectionAccess().getNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__6__Impl
+	rule__Direction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_6()); }
+(rule__Direction__Group_6__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__7__Impl
+	rule__Direction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_7()); }
+(rule__Direction__Group_7__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__8__Impl
+	rule__Direction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); }
+
+	'onNode' 
+
+{ after(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__9__Impl
+	rule__Direction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); }
+(rule__Direction__OnNodeAssignment_9)
+{ after(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__10__Impl
+	rule__Direction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_10()); }
+(rule__Direction__Group_10__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__11__Impl
+	rule__Direction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaKeyword_11()); }
+
+	'via' 
+
+{ after(grammarAccess.getDirectionAccess().getViaKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__12__Impl
+	rule__Direction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaAssignment_12()); }
+(rule__Direction__ViaAssignment_12)
+{ after(grammarAccess.getDirectionAccess().getViaAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Direction__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__0__Impl
+	rule__Direction__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__1__Impl
+	rule__Direction__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__2__Impl
+	rule__Direction__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); }
+(rule__Direction__AlternativeNamesAssignment_6_2)
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__3__Impl
+	rule__Direction__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_6_3()); }
+(rule__Direction__Group_6_3__0)*
+{ after(grammarAccess.getDirectionAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Direction__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6_3__0__Impl
+	rule__Direction__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); }
+(rule__Direction__AlternativeNamesAssignment_6_3_1)
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_7__0__Impl
+	rule__Direction__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); }
+
+	'distance' 
+
+{ after(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); }
+(rule__Direction__DistanceAssignment_7_1)
+{ after(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_10__0__Impl
+	rule__Direction__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); }
+
+	'flow' 
+
+{ after(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); }
+(rule__Direction__FlowAssignment_10_1)
+{ after(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Hop__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__0__Impl
+	rule__Hop__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getHopKeyword_0()); }
+
+	'Hop' 
+
+{ after(grammarAccess.getHopAccess().getHopKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__1__Impl
+	rule__Hop__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__2__Impl
+	rule__Hop__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); }
+
+	'interfaceref' 
+
+{ after(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__3__Impl
+	rule__Hop__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); }
+(rule__Hop__InterfacerefAssignment_3)
+{ after(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__4__Impl
+	rule__Hop__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getGroup_4()); }
+(rule__Hop__Group_4__0)?
+{ after(grammarAccess.getHopAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Hop__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group_4__0__Impl
+	rule__Hop__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); }
+
+	'nextHop' 
+
+{ after(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); }
+(rule__Hop__NextHopAssignment_4_1)
+{ after(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EIntegerObject__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EIntegerObject__Group__0__Impl
+	rule__EIntegerObject__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EIntegerObject__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EIntegerObject__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EIntegerObject__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EIntegerObject__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__0__Impl
+	rule__PhysicalNetworkInterface__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); }
+
+	'PhysicalNetworkInterface' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__1__Impl
+	rule__PhysicalNetworkInterface__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); }
+(rule__PhysicalNetworkInterface__IdAssignment_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__2__Impl
+	rule__PhysicalNetworkInterface__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__3__Impl
+	rule__PhysicalNetworkInterface__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__4__Impl
+	rule__PhysicalNetworkInterface__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); }
+(rule__PhysicalNetworkInterface__NameAssignment_4)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__5__Impl
+	rule__PhysicalNetworkInterface__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); }
+(rule__PhysicalNetworkInterface__Group_5__0)?
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__6__Impl
+	rule__PhysicalNetworkInterface__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+
+	'usedProtocolStack' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__7__Impl
+	rule__PhysicalNetworkInterface__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+(rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__8__Impl
+	rule__PhysicalNetworkInterface__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); }
+(rule__PhysicalNetworkInterface__Group_8__0)?
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__9__Impl
+	rule__PhysicalNetworkInterface__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__10__Impl
+	rule__PhysicalNetworkInterface__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+(rule__PhysicalNetworkInterface__PerformanceAssignment_10)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__0__Impl
+	rule__PhysicalNetworkInterface__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__1__Impl
+	rule__PhysicalNetworkInterface__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__2__Impl
+	rule__PhysicalNetworkInterface__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__3__Impl
+	rule__PhysicalNetworkInterface__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); }
+(rule__PhysicalNetworkInterface__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5_3__0__Impl
+	rule__PhysicalNetworkInterface__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__0__Impl
+	rule__PhysicalNetworkInterface__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__1__Impl
+	rule__PhysicalNetworkInterface__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__2__Impl
+	rule__PhysicalNetworkInterface__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+(rule__PhysicalNetworkInterface__AddressesAssignment_8_2)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__3__Impl
+	rule__PhysicalNetworkInterface__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); }
+(rule__PhysicalNetworkInterface__Group_8_3__0)*
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8_3__0__Impl
+	rule__PhysicalNetworkInterface__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+(rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__0__Impl
+	rule__VirtualNetworkInterface__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); }
+
+	'VirtualNetworkInterface' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__1__Impl
+	rule__VirtualNetworkInterface__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); }
+(rule__VirtualNetworkInterface__IdAssignment_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__2__Impl
+	rule__VirtualNetworkInterface__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__3__Impl
+	rule__VirtualNetworkInterface__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__4__Impl
+	rule__VirtualNetworkInterface__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); }
+(rule__VirtualNetworkInterface__NameAssignment_4)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__5__Impl
+	rule__VirtualNetworkInterface__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); }
+(rule__VirtualNetworkInterface__Group_5__0)?
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__6__Impl
+	rule__VirtualNetworkInterface__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+
+	'usedProtocolStack' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__7__Impl
+	rule__VirtualNetworkInterface__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+(rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__8__Impl
+	rule__VirtualNetworkInterface__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); }
+(rule__VirtualNetworkInterface__Group_8__0)?
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__9__Impl
+	rule__VirtualNetworkInterface__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__10__Impl
+	rule__VirtualNetworkInterface__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+(rule__VirtualNetworkInterface__PerformanceAssignment_10)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__0__Impl
+	rule__VirtualNetworkInterface__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__1__Impl
+	rule__VirtualNetworkInterface__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__2__Impl
+	rule__VirtualNetworkInterface__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__3__Impl
+	rule__VirtualNetworkInterface__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); }
+(rule__VirtualNetworkInterface__Group_5_3__0)*
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5_3__0__Impl
+	rule__VirtualNetworkInterface__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__0__Impl
+	rule__VirtualNetworkInterface__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__1__Impl
+	rule__VirtualNetworkInterface__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__2__Impl
+	rule__VirtualNetworkInterface__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+(rule__VirtualNetworkInterface__AddressesAssignment_8_2)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__3__Impl
+	rule__VirtualNetworkInterface__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); }
+(rule__VirtualNetworkInterface__Group_8_3__0)*
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8_3__0__Impl
+	rule__VirtualNetworkInterface__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+(rule__VirtualNetworkInterface__AddressesAssignment_8_3_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__DataCenterNameAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); }
+	ruleEString{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__DataCenterAltNameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__TrafficAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); }
+	ruleNetworkTraffic{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__StructureAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); }
+	ruleNetworkStructure{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ConfigurationAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); }
+	ruleNetworkConfiguration{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ParamsAssignment_12_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); }
+	ruleExperimentParam{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ParamsAssignment_12_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); }
+	ruleExperimentParam{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+	ruleEBoolean{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+	ruleSpeedUnit{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+	ruleEBoolean{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+	ruleSpeedUnit{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__DataplaneAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); }
+	ruleDataPlanePerfSpec{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__ControlplaneAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); }
+	ruleControlPlanePerfSpec{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__DataplaneAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); }
+	ruleDataPlanePerfSpec{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__ControlplaneAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); }
+	ruleControlPlanePerfSpec{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__FlowsAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); }
+	ruleFlow{ after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__FlowsAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); }
+	ruleFlow{ after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__SoftwareAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); }
+	ruleSoftwareComponent{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__SoftwareAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); }
+	ruleSoftwareComponent{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__NodesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); }
+	ruleNode{ after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__NodesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); }
+	ruleNode{ after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__LinksAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); }
+	ruleLink{ after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__LinksAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); }
+	ruleLink{ after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); }
+	ruleProtocolsRepository{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__RoutesAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); }
+	ruleRoutesRepository{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__ValueAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__DeployedOnAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); }
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__TrafficSourcesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); }
+	ruleTrafficSource{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); }
+	ruleTrafficSource{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__AddressAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); }
+	ruleEString{ after(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__AddressGivenByAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__StartStateAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+
+	'startState' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__IdAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); }
+	RULE_ID{ after(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__NameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__AlternativeNamesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); }
+)
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationAddressesAssignment_9_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__ONstateIATAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__ONstateDurationAssignment_13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__OFFstateDurationAssignment_15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__PacketLengthAssignment_17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); }
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); }
+)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__SourceSoftwareComponentAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationAddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationAddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DataSizeAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); }
+	ruleDependency{ after(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__DeliveryGuaranteedAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+
+	'deliveryGuaranteed' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__NameAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__AlternativeNamesAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__MtuAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__HeadersLengthAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__DataUnitLengthAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__ConnectionlessAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); }
+	ruleEBoolean{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__ValueAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); }
+	ruleEDouble{ after(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__ValueAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); }
+	ruleELong{ after(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__UnitAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__CdfAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); }
+	ruleFunction{ after(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__NumArgsAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+	ruleEInt{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__EquationAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__UnitAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__NumArgsAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+	ruleEInt{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__XAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__XAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__YAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__PrefixAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); }
+	ruleUnitPrefix{ after(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__ValueAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); }
+	ruleEFloat{ after(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__UnitAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); }
+	ruleSpeed{ after(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__DataAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); }
+	ruleEDouble{ after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__DataAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); }
+	ruleEDouble{ after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AddressesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AddressesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__WorkloadAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); }
+	ruleWorkload{ after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__WorkloadAssignment_10_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); }
+	ruleWorkload{ after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__ActionsAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); }
+	ruleAbstractAction{ after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__ActionsAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__InternAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+	ruleAbstractAction{ after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__InternAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__InternAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); }
+	ruleAbstractAction{ after(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__NumIterationsAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__InternAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+	ruleAbstractAction{ after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__InternAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__FlowAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); }
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__WaitTimeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__SoftwareAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__SoftwareAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__HostedOnAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__InterfacesAssignment_11_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); }
+	ruleVirtualNetworkInterface{ after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__InterfacesAssignment_11_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); }
+	ruleVirtualNetworkInterface{ after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__SoftwareAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__SoftwareAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__HostsAssignment_7_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__HostsAssignment_7_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__PerformanceAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__InterfacesAssignment_10_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); }
+	ruleNetworkInterface{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__InterfacesAssignment_10_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); }
+	ruleNetworkInterface{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__ConnectsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__ConnectsAssignment_9_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); }
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__PerformanceAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__ConnectsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__ConnectsAssignment_9_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); }
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__PerformanceAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__StacksAssignment_2_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); }
+	ruleProtocolStack{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__StacksAssignment_2_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); }
+	ruleProtocolStack{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__ProtocolsAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); }
+	ruleNetworkProtocol{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__ProtocolsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); }
+	ruleNetworkProtocol{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__RoutesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); }
+	ruleRoute{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__RoutesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); }
+	ruleRoute{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__FlowRoutesAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); }
+	ruleFlowRoute{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__FlowRoutesAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); }
+	ruleFlowRoute{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__DirectionsAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); }
+	ruleDirection{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__DirectionsAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); }
+	ruleDirection{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__AlternativeNamesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__AlternativeNamesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__LayersAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); }
+	ruleProtocolLayer{ after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__LayersAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); }
+	ruleProtocolLayer{ after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__AlternativeNamesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__ProtocolAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__IsCarriedByAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__CarriesAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__NumHopsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+	ruleEIntegerObject{ after(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__StartAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__EndAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); }
+(
+{ before(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__HopsAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); }
+	ruleHop{ after(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__NumHopsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+	ruleEIntegerObject{ after(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__FlowAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__StartAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__EndAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__HopsAssignment_13_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); }
+	ruleHop{ after(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__IsDefaultAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+
+	'isDefault' 
+
+{ after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__IdAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); }
+	RULE_ID{ after(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__NameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__AlternativeNamesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__AlternativeNamesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__DistanceAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); }
+	ruleELong{ after(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__OnNodeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__FlowAssignment_10_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__ViaAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__InterfacerefAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); }
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__NextHopAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); }
+	ruleHop{ after(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); }
+	rulePhysicalNetworkInterfacePerfSpec{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+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 : .;
+
+
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..cf115ed600497b0f4e4e08981d2f1b38c509b5d5
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens
@@ -0,0 +1,309 @@
+'('=123
+')'=124
+','=31
+'-'=87
+'.'=99
+'BranchAction'=109
+'BytesPerSec'=19
+'ConstantDoubleVariable'=88
+'ConstantLongVariable'=90
+'ContinuousFunction'=93
+'DataPlanePerfSpec'=45
+'DataSeries'=102
+'Direction'=149
+'DiscreteFunction'=96
+'E'=13
+'EndNodePerfSpec'=51
+'EntityAddress'=69
+'ExperimentParam'=62
+'FlowRoute'=148
+'G'=18
+'GenericFlow'=80
+'GenericWorkload'=107
+'Hop'=153
+'IntermediateNodePerfSpec'=42
+'K'=16
+'LoopAction'=111
+'M'=17
+'MTU'=35
+'NetworkConfiguration'=59
+'NetworkInfrastructure'=22
+'NetworkProtocol'=82
+'NetworkStructure'=56
+'NetworkTraffic'=53
+'OFFstateDuration'=75
+'ONOFFFlow'=72
+'ONstateDuration'=74
+'ONstateIAT'=73
+'PhysicalLink'=128
+'PhysicalLinkPerfSpec'=41
+'PhysicalNetworkInterface'=156
+'PhysicalNetworkInterfacePerfSpec'=37
+'PhysicalNode'=126
+'ProtocolLayer'=139
+'ProtocolStack'=137
+'ProtocolsRepository'=131
+'RandomVariable'=91
+'Route'=143
+'RoutesRepository'=134
+'SequenceAction'=113
+'SoftwareComponent'=64
+'SpeedUnit'=100
+'StartAction'=114
+'StopAction'=115
+'TrafficSource'=104
+'TransmitAction'=116
+'VirtualLink'=130
+'VirtualLinkPerfSpec'=38
+'VirtualNetworkInterface'=158
+'VirtualNetworkInterfacePerfSpec'=32
+'VirtualNode'=120
+'WaitAction'=118
+'actions'=108
+'address'=70
+'addressGivenBy'=71
+'addresses'=106
+'alternativeNames'=67
+'bitsPerSec'=20
+'carries'=142
+'cdf'=92
+'configuration'=28
+'connectionless'=86
+'connects'=129
+'controlplane'=44
+'data'=103
+'dataCenterAltName'=25
+'dataCenterName'=24
+'dataSize'=81
+'dataUnitLength'=85
+'dataplane'=43
+'deliveryGuaranteed'=160
+'deployedOn'=66
+'destinationAddresses'=79
+'destinationSoftwareComponent'=77
+'directions'=136
+'distance'=152
+'e'=14
+'end'=145
+'equation'=95
+'false'=12
+'flow'=117
+'flowRoutes'=135
+'flows'=54
+'forwardingBandwidthBPS'=50
+'forwardingBandwidthPPS'=49
+'forwardingLatency'=48
+'headersLength'=84
+'hops'=147
+'hostedOn'=121
+'hosts'=127
+'interfaceSpeed'=36
+'interfaceref'=154
+'interfaces'=125
+'intern'=110
+'isCarriedBy'=141
+'isDefault'=161
+'isUp'=33
+'layers'=138
+'links'=58
+'maxSupportedBandwidth'=40
+'mtu'=83
+'name'=65
+'nextHop'=155
+'nodes'=57
+'none'=15
+'numArgs'=94
+'numHops'=146
+'numIterations'=112
+'onNode'=150
+'packetLength'=76
+'packetProcessingTime'=34
+'packetsPerSec'=21
+'params'=30
+'performance'=122
+'prefix'=101
+'processingBandwidthReqPS'=47
+'processingLatency'=46
+'propagationDelay'=39
+'protocol'=140
+'protocols'=132
+'protocolsAndStacks'=60
+'routes'=61
+'software'=55
+'softwareLayersDelay'=52
+'sourceSoftwareComponent'=78
+'stacks'=133
+'start'=144
+'startState'=159
+'structure'=27
+'traffic'=26
+'trafficSources'=68
+'true'=11
+'unit'=89
+'usedProtocolStack'=157
+'value'=63
+'via'=151
+'waitTime'=119
+'workload'=105
+'x'=97
+'y'=98
+'{'=23
+'}'=29
+RULE_ANY_OTHER=10
+RULE_ID=5
+RULE_INT=6
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=4
+RULE_WS=9
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__11=11
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__12=12
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__13=13
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__147=147
+T__148=148
+T__149=149
+T__14=14
+T__150=150
+T__151=151
+T__152=152
+T__153=153
+T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
+T__15=15
+T__160=160
+T__161=161
+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
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer$DFA12.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer$DFA12.class
new file mode 100644
index 0000000000000000000000000000000000000000..06a8a6a8b7e6b89cd885fc71378ca3f22018820e
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer$DFA12.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.class
new file mode 100644
index 0000000000000000000000000000000000000000..42c8972bb13568d03cde2f0b10871c89c00e5b2c
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets000.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets000.class
new file mode 100644
index 0000000000000000000000000000000000000000..51eb0aa64d0ccc6f13f6f82ccf158401d4fdca8e
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets000.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets001.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets001.class
new file mode 100644
index 0000000000000000000000000000000000000000..8a0f4821267e0e30ba113ea859f45538646178d1
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets001.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets002.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets002.class
new file mode 100644
index 0000000000000000000000000000000000000000..762ba79a2c3e62863234b237ec6ca3f172d16089
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser$FollowSets002.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.class
new file mode 100644
index 0000000000000000000000000000000000000000..4be9b94d8ed7c3dd9780da7217652cdeb57bc8a2
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.class
new file mode 100644
index 0000000000000000000000000000000000000000..d8050510968ed417e4e239fe55daa726291a3ca4
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..8abba43aadc7b67115c1ea4dcdeb909a5dcefb3c
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..6312618ce6182c8cde7f8278ff2f9e0c7208af5b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..3ecce2bc7f13ca87da84deddc7c67d7c3005edc3
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..0ba70c5f9286e1f61900512a50d40897cae1468c
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..74fdf17d359cc707f9fdc58577654e73a016769e
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..855e38a83f91b5e546eb040287148f9bafa2c157
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..683d5a2056fdb459084e60dfa18e2dd3f3350190
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..a7ac26d49e2d2b9c66e6bb79232e385a1307cd75
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..c19096eb018ec3d10f18d94a155d75529c71b933
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..bfe4a6124450452f3ccbbcb4ead809aeb672fab5
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..84e97716307301668933ea05bfcbab7e3747806b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.class b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.class
new file mode 100644
index 0000000000000000000000000000000000000000..21f8eeedd7e092d7e5eaca43073b68f45a31b8a9
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/bin/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.class differ
diff --git a/tools.descartes.dml.dni.text.ui/build.properties b/tools.descartes.dml.dni.text.ui/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..dfd4ed5d2701c6c9118cfa11897a1764a6d17c36
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+           src-gen/,\
+           xtend-gen/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/tools.descartes.dml.dni.text.ui/plugin.xml b/tools.descartes.dml.dni.text.ui/plugin.xml
new file mode 100644
index 0000000000000000000000000000000000000000..142627a045950c5136f7f5f7fc08077b7d6087a2
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/plugin.xml
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="dnitxt"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="tools.descatres.dml.dni.text.DNIText.validate">
+         <activeWhen>
+            <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="tools.descatres.dml.dni.text.DNIText" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="tools.descatres.dml.dni.text.DNIText.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="tools.descatres.dml.dni.text.DNIText" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.templates"
+            name="Templates">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+            <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="tools.descatres.dml.dni.text.ui.keyword_DNIText"
+            label="DNIText"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="dnitxt">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="dnitxt">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for tools.descatres.dml.dni.text.DNIText -->
+	<extension
+	        id="dnitext.check.fast"
+	        name="DNIText Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="dnitext.check.normal"
+	        name="DNIText Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="dnitext.check.expensive"
+	        name="DNIText 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="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="dnitxt"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+            <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="tools.descatres.dml.dni.text.DNIText.OpenGeneratedCode"
+				style="push">
+					<visibleWhen checkEnabled="false">
+						<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+					</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+				<activeWhen>
+					<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+				</activeWhen>
+		</handler>
+	</extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for tools.descatres.dml.dni.text.DNIText -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="tools.descatres.dml.dni.text.DNIText"
+	        class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="tools.descatres.dml.dni.text.DNIText.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+	    </page>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="tools.descatres.dml.dni.text.DNIText.compare.contentViewers"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="dnitxt">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="tools.descatres.dml.dni.text.DNIText.compare.contentMergeViewers"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="dnitxt" label="DNIText Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="tools.descatres.dml.dni.text.DNIText.editors.documentProviders"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="dnitxt">
+    </provider>
+  </extension>
+  <extension point="org.eclipse.team.core.fileTypes">
+    <fileTypes
+            extension="dnitxt"
+            type="text">
+    </fileTypes>
+  </extension>
+
+</plugin>
diff --git a/tools.descartes.dml.dni.text.ui/plugin.xml_gen b/tools.descartes.dml.dni.text.ui/plugin.xml_gen
new file mode 100644
index 0000000000000000000000000000000000000000..142627a045950c5136f7f5f7fc08077b7d6087a2
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/plugin.xml_gen
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="dnitxt"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="tools.descatres.dml.dni.text.DNIText.validate">
+         <activeWhen>
+            <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="tools.descatres.dml.dni.text.DNIText" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="tools.descatres.dml.dni.text.DNIText.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="tools.descatres.dml.dni.text.DNIText" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.templates"
+            name="Templates">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText"
+            name="DNIText">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+            <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="tools.descatres.dml.dni.text.ui.keyword_DNIText"
+            label="DNIText"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="dnitxt">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="dnitxt">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for tools.descatres.dml.dni.text.DNIText -->
+	<extension
+	        id="dnitext.check.fast"
+	        name="DNIText Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="dnitext.check.normal"
+	        name="DNIText Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="dnitext.check.expensive"
+	        name="DNIText 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="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="dnitxt"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="tools.descatres.dml.dni.text.DNIText"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="tools.descatres.dml.dni.text.DNIText.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+            <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="tools.descatres.dml.dni.text.DNIText.OpenGeneratedCode"
+				style="push">
+					<visibleWhen checkEnabled="false">
+						<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+					</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+				<activeWhen>
+					<reference definitionId="tools.descatres.dml.dni.text.DNIText.Editor.opened" />
+				</activeWhen>
+		</handler>
+	</extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for tools.descatres.dml.dni.text.DNIText -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="tools.descatres.dml.dni.text.ui.dnitext.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="tools.descatres.dml.dni.text.DNIText.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="tools.descatres.dml.dni.text.DNIText.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="tools.descatres.dml.dni.text.DNIText"
+	        class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="tools.descatres.dml.dni.text.DNIText.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="tools.descatres.dml.dni.text.ui.keyword_DNIText"/>
+	    </page>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="tools.descatres.dml.dni.text.DNIText.compare.contentViewers"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="dnitxt">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="tools.descatres.dml.dni.text.DNIText.compare.contentMergeViewers"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="dnitxt" label="DNIText Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="tools.descatres.dml.dni.text.DNIText.editors.documentProviders"
+            class="tools.descatres.dml.dni.text.ui.DNITextExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="dnitxt">
+    </provider>
+  </extension>
+  <extension point="org.eclipse.team.core.fileTypes">
+    <fileTypes
+            extension="dnitxt"
+            type="text">
+    </fileTypes>
+  </extension>
+
+</plugin>
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..bf593a364e1f1855751b0062fce232098e6501ff
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/AbstractDNITextUiModule.java
@@ -0,0 +1,191 @@
+
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {tools.descatres.dml.dni.text.ui.DNITextUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractDNITextUiModule extends org.eclipse.xtext.common.types.ui.DefaultCommonTypesUiModule {
+	
+	public AbstractDNITextUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+	
+	
+	// contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+	public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+		return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(tools.descatres.dml.dni.text.parser.antlr.internal.InternalDNITextLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+		return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+	}
+
+	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+		return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+		return org.eclipse.xtext.builder.BuilderParticipant.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+		return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+	}
+
+	// contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+	public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+		return tools.descatres.dml.dni.text.ui.labeling.DNITextLabelProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+	public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(tools.descatres.dml.dni.text.ui.labeling.DNITextDescriptionLabelProvider.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+		return tools.descatres.dml.dni.text.ui.outline.DNITextOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+		return tools.descatres.dml.dni.text.ui.outline.DNITextOutlineTreeProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+		return tools.descatres.dml.dni.text.ui.quickfix.DNITextQuickfixProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.contentAssist.ContentAssistFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+		return tools.descatres.dml.dni.text.ui.contentassist.DNITextProposalProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+		return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+		return tools.descatres.dml.dni.text.ui.contentassist.antlr.DNITextParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextLexer.class));
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextLexer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+		return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+	public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+		return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+		return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+		return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	@org.eclipse.xtext.service.SingletonBinding(eager=true)	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+		return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+		return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+		return tools.descatres.dml.dni.text.ui.contentassist.antlr.PartialDNITextContentAssistParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+	public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+		return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+	}
+
+
+}
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..069e49bbcaf0f18c518cdaaa7d51d208fa4c9f89
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/DNITextExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import tools.descatres.dml.dni.text.ui.internal.DNITextActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class DNITextExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return DNITextActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return DNITextActivator.getInstance().getInjector(DNITextActivator.TOOLS_DESCATRES_DML_DNI_TEXT_DNITEXT);
+	}
+	
+}
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6fc6920e247288e3d9213e41607eaee11c299b3
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/AbstractDNITextProposalProvider.java
@@ -0,0 +1,749 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractDNITextProposalProvider extends org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider {
+		
+	public void completeNetworkInfrastructure_DataCenterName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkInfrastructure_DataCenterAltName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkInfrastructure_Traffic(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkInfrastructure_Structure(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkInfrastructure_Configuration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkInfrastructure_Params(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterfacePerfSpec_IsUp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterfacePerfSpec_PacketProcessingTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterfacePerfSpec_MTU(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterfacePerfSpec_InterfaceSpeed(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterfacePerfSpec_IsUp(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterfacePerfSpec_PacketProcessingTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterfacePerfSpec_MTU(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterfacePerfSpec_InterfaceSpeed(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLinkPerfSpec_PropagationDelay(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLinkPerfSpec_MaxSupportedBandwidth(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLinkPerfSpec_PropagationDelay(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLinkPerfSpec_MaxSupportedBandwidth(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeIntermediateNodePerfSpec_Dataplane(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeIntermediateNodePerfSpec_Controlplane(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeControlPlanePerfSpec_ProcessingLatency(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeControlPlanePerfSpec_ProcessingBandwidthReqPS(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeControlPlanePerfSpec_PacketProcessingTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataPlanePerfSpec_ForwardingLatency(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataPlanePerfSpec_ForwardingBandwidthPPS(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataPlanePerfSpec_ForwardingBandwidthBPS(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataPlanePerfSpec_PacketProcessingTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEndNodePerfSpec_SoftwareLayersDelay(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEndNodePerfSpec_Dataplane(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEndNodePerfSpec_Controlplane(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkTraffic_Flows(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkTraffic_Software(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkStructure_Nodes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkStructure_Links(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkConfiguration_ProtocolsAndStacks(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkConfiguration_Routes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeExperimentParam_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeExperimentParam_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSoftwareComponent_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSoftwareComponent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSoftwareComponent_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSoftwareComponent_DeployedOn(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSoftwareComponent_TrafficSources(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEntityAddress_Address(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeEntityAddress_AddressGivenBy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_StartState(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeONOFFFlow_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_DestinationSoftwareComponent(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_SourceSoftwareComponent(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_DestinationAddresses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_ONstateIAT(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_ONstateDuration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_OFFstateDuration(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeONOFFFlow_PacketLength(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_DestinationSoftwareComponent(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_SourceSoftwareComponent(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_DestinationAddresses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericFlow_DataSize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_DeliveryGuaranteed(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeNetworkProtocol_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_Mtu(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_HeadersLength(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_DataUnitLength(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNetworkProtocol_Connectionless(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantDoubleVariable_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantDoubleVariable_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantLongVariable_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantLongVariable_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRandomVariable_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRandomVariable_Cdf(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeContinuousFunction_NumArgs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeContinuousFunction_Equation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeContinuousFunction_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDiscreteFunction_NumArgs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDiscreteFunction_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDiscreteFunction_X(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDiscreteFunction_Y(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpeedUnit_Prefix(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpeedUnit_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSpeedUnit_Unit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDataSeries_Data(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTrafficSource_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTrafficSource_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTrafficSource_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTrafficSource_Addresses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTrafficSource_Workload(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGenericWorkload_Actions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBranchAction_Intern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoopAction_Intern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLoopAction_NumIterations(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSequenceAction_Intern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTransmitAction_Flow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeWaitAction_WaitTime(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_Software(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_HostedOn(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNode_Interfaces(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Software(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Hosts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNode_Interfaces(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLink_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLink_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLink_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLink_Connects(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalLink_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLink_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLink_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLink_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLink_Connects(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualLink_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolsRepository_Stacks(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolsRepository_Protocols(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoutesRepository_Routes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoutesRepository_FlowRoutes(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoutesRepository_Directions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolStack_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolStack_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolStack_Layers(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolLayer_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolLayer_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolLayer_Protocol(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolLayer_IsCarriedBy(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeProtocolLayer_Carries(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_NumHops(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_Start(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_End(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeRoute_Hops(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_NumHops(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_Flow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_Start(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_End(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFlowRoute_Hops(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_IsDefault(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDirection_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_Distance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_OnNode(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_Flow(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDirection_Via(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeHop_Interfaceref(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeHop_NextHop(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_UsedProtocolStack(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_Addresses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePhysicalNetworkInterface_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_AlternativeNames(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_UsedProtocolStack(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_Addresses(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeVirtualNetworkInterface_Performance(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_NetworkInfrastructure(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Flow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Node(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Link(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Dependency(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DNIUnit(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Function(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Workload(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AbstractAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PerformanceSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkInterfacePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VirtualNetworkInterfacePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PhysicalNetworkInterfacePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_LinkPerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VirtualLinkPerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PhysicalLinkPerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_IntermediateNodePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ControlPlanePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataPlanePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EndNodePerfSpec(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkInterface(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkTraffic(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkStructure(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkConfiguration(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ExperimentParam(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EString(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SoftwareComponent(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EntityAddress(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ONOFFFlow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_GenericFlow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NetworkProtocol(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EInt(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EBoolean(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ConstantDoubleVariable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ConstantLongVariable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_RandomVariable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ContinuousFunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DiscreteFunction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_UnitPrefix(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EFloat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SpeedUnit(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Speed(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EDouble(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ELong(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DataSeries(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TrafficSource(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_GenericWorkload(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BranchAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_LoopAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SequenceAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_StartAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_StopAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TransmitAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WaitAction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EObject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VirtualNode(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PhysicalNode(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PhysicalLink(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VirtualLink(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ProtocolsRepository(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_RoutesRepository(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ProtocolStack(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ProtocolLayer(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Route(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FlowRoute(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Direction(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Hop(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_EIntegerObject(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PhysicalNetworkInterface(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_VirtualNetworkInterface(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..da558e878ac3a8d1391f7bdb974d52c09fecde52
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/DNITextParser.java
@@ -0,0 +1,469 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import tools.descatres.dml.dni.text.services.DNITextGrammarAccess;
+
+public class DNITextParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private DNITextGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextParser createParser() {
+		tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextParser result = new tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextParser(null);
+		result.setGrammarAccess(grammarAccess);
+		return result;
+	}
+	
+	@Override
+	protected String getRuleName(AbstractElement element) {
+		if (nameMappings == null) {
+			nameMappings = new HashMap<AbstractElement, String>() {
+				private static final long serialVersionUID = 1L;
+				{
+					put(grammarAccess.getFlowAccess().getAlternatives(), "rule__Flow__Alternatives");
+					put(grammarAccess.getNodeAccess().getAlternatives(), "rule__Node__Alternatives");
+					put(grammarAccess.getLinkAccess().getAlternatives(), "rule__Link__Alternatives");
+					put(grammarAccess.getDependencyAccess().getAlternatives(), "rule__Dependency__Alternatives");
+					put(grammarAccess.getFunctionAccess().getAlternatives(), "rule__Function__Alternatives");
+					put(grammarAccess.getAbstractActionAccess().getAlternatives(), "rule__AbstractAction__Alternatives");
+					put(grammarAccess.getPerformanceSpecificationAccess().getAlternatives(), "rule__PerformanceSpecification__Alternatives");
+					put(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives(), "rule__NetworkInterfacePerfSpec__Alternatives");
+					put(grammarAccess.getLinkPerfSpecAccess().getAlternatives(), "rule__LinkPerfSpec__Alternatives");
+					put(grammarAccess.getNetworkInterfaceAccess().getAlternatives(), "rule__NetworkInterface__Alternatives");
+					put(grammarAccess.getEStringAccess().getAlternatives(), "rule__EString__Alternatives");
+					put(grammarAccess.getEBooleanAccess().getAlternatives(), "rule__EBoolean__Alternatives");
+					put(grammarAccess.getEFloatAccess().getAlternatives_4_0(), "rule__EFloat__Alternatives_4_0");
+					put(grammarAccess.getEDoubleAccess().getAlternatives_4_0(), "rule__EDouble__Alternatives_4_0");
+					put(grammarAccess.getUnitPrefixAccess().getAlternatives(), "rule__UnitPrefix__Alternatives");
+					put(grammarAccess.getSpeedAccess().getAlternatives(), "rule__Speed__Alternatives");
+					put(grammarAccess.getNetworkInfrastructureAccess().getGroup(), "rule__NetworkInfrastructure__Group__0");
+					put(grammarAccess.getNetworkInfrastructureAccess().getGroup_12(), "rule__NetworkInfrastructure__Group_12__0");
+					put(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3(), "rule__NetworkInfrastructure__Group_12_3__0");
+					put(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup(), "rule__VirtualNetworkInterfacePerfSpec__Group__0");
+					put(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup(), "rule__PhysicalNetworkInterfacePerfSpec__Group__0");
+					put(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup(), "rule__VirtualLinkPerfSpec__Group__0");
+					put(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5(), "rule__VirtualLinkPerfSpec__Group_5__0");
+					put(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup(), "rule__PhysicalLinkPerfSpec__Group__0");
+					put(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5(), "rule__PhysicalLinkPerfSpec__Group_5__0");
+					put(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup(), "rule__IntermediateNodePerfSpec__Group__0");
+					put(grammarAccess.getControlPlanePerfSpecAccess().getGroup(), "rule__ControlPlanePerfSpec__Group__0");
+					put(grammarAccess.getDataPlanePerfSpecAccess().getGroup(), "rule__DataPlanePerfSpec__Group__0");
+					put(grammarAccess.getEndNodePerfSpecAccess().getGroup(), "rule__EndNodePerfSpec__Group__0");
+					put(grammarAccess.getEndNodePerfSpecAccess().getGroup_4(), "rule__EndNodePerfSpec__Group_4__0");
+					put(grammarAccess.getEndNodePerfSpecAccess().getGroup_5(), "rule__EndNodePerfSpec__Group_5__0");
+					put(grammarAccess.getNetworkTrafficAccess().getGroup(), "rule__NetworkTraffic__Group__0");
+					put(grammarAccess.getNetworkTrafficAccess().getGroup_3(), "rule__NetworkTraffic__Group_3__0");
+					put(grammarAccess.getNetworkTrafficAccess().getGroup_3_3(), "rule__NetworkTraffic__Group_3_3__0");
+					put(grammarAccess.getNetworkTrafficAccess().getGroup_4(), "rule__NetworkTraffic__Group_4__0");
+					put(grammarAccess.getNetworkTrafficAccess().getGroup_4_3(), "rule__NetworkTraffic__Group_4_3__0");
+					put(grammarAccess.getNetworkStructureAccess().getGroup(), "rule__NetworkStructure__Group__0");
+					put(grammarAccess.getNetworkStructureAccess().getGroup_3(), "rule__NetworkStructure__Group_3__0");
+					put(grammarAccess.getNetworkStructureAccess().getGroup_3_3(), "rule__NetworkStructure__Group_3_3__0");
+					put(grammarAccess.getNetworkStructureAccess().getGroup_4(), "rule__NetworkStructure__Group_4__0");
+					put(grammarAccess.getNetworkStructureAccess().getGroup_4_3(), "rule__NetworkStructure__Group_4_3__0");
+					put(grammarAccess.getNetworkConfigurationAccess().getGroup(), "rule__NetworkConfiguration__Group__0");
+					put(grammarAccess.getExperimentParamAccess().getGroup(), "rule__ExperimentParam__Group__0");
+					put(grammarAccess.getSoftwareComponentAccess().getGroup(), "rule__SoftwareComponent__Group__0");
+					put(grammarAccess.getSoftwareComponentAccess().getGroup_5(), "rule__SoftwareComponent__Group_5__0");
+					put(grammarAccess.getSoftwareComponentAccess().getGroup_5_3(), "rule__SoftwareComponent__Group_5_3__0");
+					put(grammarAccess.getSoftwareComponentAccess().getGroup_8(), "rule__SoftwareComponent__Group_8__0");
+					put(grammarAccess.getSoftwareComponentAccess().getGroup_8_3(), "rule__SoftwareComponent__Group_8_3__0");
+					put(grammarAccess.getEntityAddressAccess().getGroup(), "rule__EntityAddress__Group__0");
+					put(grammarAccess.getEntityAddressAccess().getGroup_3(), "rule__EntityAddress__Group_3__0");
+					put(grammarAccess.getEntityAddressAccess().getGroup_4(), "rule__EntityAddress__Group_4__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup(), "rule__ONOFFFlow__Group__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_6(), "rule__ONOFFFlow__Group_6__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_6_3(), "rule__ONOFFFlow__Group_6_3__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_7(), "rule__ONOFFFlow__Group_7__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_8(), "rule__ONOFFFlow__Group_8__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_9(), "rule__ONOFFFlow__Group_9__0");
+					put(grammarAccess.getONOFFFlowAccess().getGroup_9_3(), "rule__ONOFFFlow__Group_9_3__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup(), "rule__GenericFlow__Group__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_5(), "rule__GenericFlow__Group_5__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_5_3(), "rule__GenericFlow__Group_5_3__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_6(), "rule__GenericFlow__Group_6__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_7(), "rule__GenericFlow__Group_7__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_8(), "rule__GenericFlow__Group_8__0");
+					put(grammarAccess.getGenericFlowAccess().getGroup_8_3(), "rule__GenericFlow__Group_8_3__0");
+					put(grammarAccess.getNetworkProtocolAccess().getGroup(), "rule__NetworkProtocol__Group__0");
+					put(grammarAccess.getNetworkProtocolAccess().getGroup_4(), "rule__NetworkProtocol__Group_4__0");
+					put(grammarAccess.getNetworkProtocolAccess().getGroup_4_3(), "rule__NetworkProtocol__Group_4_3__0");
+					put(grammarAccess.getNetworkProtocolAccess().getGroup_11(), "rule__NetworkProtocol__Group_11__0");
+					put(grammarAccess.getEIntAccess().getGroup(), "rule__EInt__Group__0");
+					put(grammarAccess.getConstantDoubleVariableAccess().getGroup(), "rule__ConstantDoubleVariable__Group__0");
+					put(grammarAccess.getConstantDoubleVariableAccess().getGroup_4(), "rule__ConstantDoubleVariable__Group_4__0");
+					put(grammarAccess.getConstantLongVariableAccess().getGroup(), "rule__ConstantLongVariable__Group__0");
+					put(grammarAccess.getConstantLongVariableAccess().getGroup_4(), "rule__ConstantLongVariable__Group_4__0");
+					put(grammarAccess.getRandomVariableAccess().getGroup(), "rule__RandomVariable__Group__0");
+					put(grammarAccess.getRandomVariableAccess().getGroup_2(), "rule__RandomVariable__Group_2__0");
+					put(grammarAccess.getContinuousFunctionAccess().getGroup(), "rule__ContinuousFunction__Group__0");
+					put(grammarAccess.getContinuousFunctionAccess().getGroup_6(), "rule__ContinuousFunction__Group_6__0");
+					put(grammarAccess.getDiscreteFunctionAccess().getGroup(), "rule__DiscreteFunction__Group__0");
+					put(grammarAccess.getDiscreteFunctionAccess().getGroup_4(), "rule__DiscreteFunction__Group_4__0");
+					put(grammarAccess.getDiscreteFunctionAccess().getGroup_8(), "rule__DiscreteFunction__Group_8__0");
+					put(grammarAccess.getEFloatAccess().getGroup(), "rule__EFloat__Group__0");
+					put(grammarAccess.getEFloatAccess().getGroup_4(), "rule__EFloat__Group_4__0");
+					put(grammarAccess.getSpeedUnitAccess().getGroup(), "rule__SpeedUnit__Group__0");
+					put(grammarAccess.getEDoubleAccess().getGroup(), "rule__EDouble__Group__0");
+					put(grammarAccess.getEDoubleAccess().getGroup_4(), "rule__EDouble__Group_4__0");
+					put(grammarAccess.getELongAccess().getGroup(), "rule__ELong__Group__0");
+					put(grammarAccess.getDataSeriesAccess().getGroup(), "rule__DataSeries__Group__0");
+					put(grammarAccess.getDataSeriesAccess().getGroup_3(), "rule__DataSeries__Group_3__0");
+					put(grammarAccess.getDataSeriesAccess().getGroup_3_3(), "rule__DataSeries__Group_3_3__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup(), "rule__TrafficSource__Group__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup_5(), "rule__TrafficSource__Group_5__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup_5_3(), "rule__TrafficSource__Group_5_3__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup_6(), "rule__TrafficSource__Group_6__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup_6_3(), "rule__TrafficSource__Group_6_3__0");
+					put(grammarAccess.getTrafficSourceAccess().getGroup_10(), "rule__TrafficSource__Group_10__0");
+					put(grammarAccess.getGenericWorkloadAccess().getGroup(), "rule__GenericWorkload__Group__0");
+					put(grammarAccess.getGenericWorkloadAccess().getGroup_3(), "rule__GenericWorkload__Group_3__0");
+					put(grammarAccess.getGenericWorkloadAccess().getGroup_3_3(), "rule__GenericWorkload__Group_3_3__0");
+					put(grammarAccess.getBranchActionAccess().getGroup(), "rule__BranchAction__Group__0");
+					put(grammarAccess.getBranchActionAccess().getGroup_5(), "rule__BranchAction__Group_5__0");
+					put(grammarAccess.getLoopActionAccess().getGroup(), "rule__LoopAction__Group__0");
+					put(grammarAccess.getSequenceActionAccess().getGroup(), "rule__SequenceAction__Group__0");
+					put(grammarAccess.getSequenceActionAccess().getGroup_5(), "rule__SequenceAction__Group_5__0");
+					put(grammarAccess.getStartActionAccess().getGroup(), "rule__StartAction__Group__0");
+					put(grammarAccess.getStopActionAccess().getGroup(), "rule__StopAction__Group__0");
+					put(grammarAccess.getTransmitActionAccess().getGroup(), "rule__TransmitAction__Group__0");
+					put(grammarAccess.getWaitActionAccess().getGroup(), "rule__WaitAction__Group__0");
+					put(grammarAccess.getEObjectAccess().getGroup(), "rule__EObject__Group__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup(), "rule__VirtualNode__Group__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_5(), "rule__VirtualNode__Group_5__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_5_3(), "rule__VirtualNode__Group_5_3__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_6(), "rule__VirtualNode__Group_6__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_6_3(), "rule__VirtualNode__Group_6_3__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_11(), "rule__VirtualNode__Group_11__0");
+					put(grammarAccess.getVirtualNodeAccess().getGroup_11_3(), "rule__VirtualNode__Group_11_3__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup(), "rule__PhysicalNode__Group__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_5(), "rule__PhysicalNode__Group_5__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_5_3(), "rule__PhysicalNode__Group_5_3__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_6(), "rule__PhysicalNode__Group_6__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_6_3(), "rule__PhysicalNode__Group_6_3__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_7(), "rule__PhysicalNode__Group_7__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_7_3(), "rule__PhysicalNode__Group_7_3__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_10(), "rule__PhysicalNode__Group_10__0");
+					put(grammarAccess.getPhysicalNodeAccess().getGroup_10_3(), "rule__PhysicalNode__Group_10_3__0");
+					put(grammarAccess.getPhysicalLinkAccess().getGroup(), "rule__PhysicalLink__Group__0");
+					put(grammarAccess.getPhysicalLinkAccess().getGroup_5(), "rule__PhysicalLink__Group_5__0");
+					put(grammarAccess.getPhysicalLinkAccess().getGroup_5_3(), "rule__PhysicalLink__Group_5_3__0");
+					put(grammarAccess.getPhysicalLinkAccess().getGroup_9(), "rule__PhysicalLink__Group_9__0");
+					put(grammarAccess.getVirtualLinkAccess().getGroup(), "rule__VirtualLink__Group__0");
+					put(grammarAccess.getVirtualLinkAccess().getGroup_5(), "rule__VirtualLink__Group_5__0");
+					put(grammarAccess.getVirtualLinkAccess().getGroup_5_3(), "rule__VirtualLink__Group_5_3__0");
+					put(grammarAccess.getVirtualLinkAccess().getGroup_9(), "rule__VirtualLink__Group_9__0");
+					put(grammarAccess.getProtocolsRepositoryAccess().getGroup(), "rule__ProtocolsRepository__Group__0");
+					put(grammarAccess.getProtocolsRepositoryAccess().getGroup_2(), "rule__ProtocolsRepository__Group_2__0");
+					put(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3(), "rule__ProtocolsRepository__Group_2_3__0");
+					put(grammarAccess.getProtocolsRepositoryAccess().getGroup_6(), "rule__ProtocolsRepository__Group_6__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup(), "rule__RoutesRepository__Group__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_3(), "rule__RoutesRepository__Group_3__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3(), "rule__RoutesRepository__Group_3_3__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_4(), "rule__RoutesRepository__Group_4__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3(), "rule__RoutesRepository__Group_4_3__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_5(), "rule__RoutesRepository__Group_5__0");
+					put(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3(), "rule__RoutesRepository__Group_5_3__0");
+					put(grammarAccess.getProtocolStackAccess().getGroup(), "rule__ProtocolStack__Group__0");
+					put(grammarAccess.getProtocolStackAccess().getGroup_3(), "rule__ProtocolStack__Group_3__0");
+					put(grammarAccess.getProtocolStackAccess().getGroup_3_3(), "rule__ProtocolStack__Group_3_3__0");
+					put(grammarAccess.getProtocolStackAccess().getGroup_7(), "rule__ProtocolStack__Group_7__0");
+					put(grammarAccess.getProtocolLayerAccess().getGroup(), "rule__ProtocolLayer__Group__0");
+					put(grammarAccess.getProtocolLayerAccess().getGroup_3(), "rule__ProtocolLayer__Group_3__0");
+					put(grammarAccess.getProtocolLayerAccess().getGroup_3_3(), "rule__ProtocolLayer__Group_3_3__0");
+					put(grammarAccess.getProtocolLayerAccess().getGroup_6(), "rule__ProtocolLayer__Group_6__0");
+					put(grammarAccess.getProtocolLayerAccess().getGroup_7(), "rule__ProtocolLayer__Group_7__0");
+					put(grammarAccess.getRouteAccess().getGroup(), "rule__Route__Group__0");
+					put(grammarAccess.getRouteAccess().getGroup_5(), "rule__Route__Group_5__0");
+					put(grammarAccess.getRouteAccess().getGroup_5_3(), "rule__Route__Group_5_3__0");
+					put(grammarAccess.getRouteAccess().getGroup_6(), "rule__Route__Group_6__0");
+					put(grammarAccess.getRouteAccess().getGroup_11(), "rule__Route__Group_11__0");
+					put(grammarAccess.getFlowRouteAccess().getGroup(), "rule__FlowRoute__Group__0");
+					put(grammarAccess.getFlowRouteAccess().getGroup_5(), "rule__FlowRoute__Group_5__0");
+					put(grammarAccess.getFlowRouteAccess().getGroup_5_3(), "rule__FlowRoute__Group_5_3__0");
+					put(grammarAccess.getFlowRouteAccess().getGroup_6(), "rule__FlowRoute__Group_6__0");
+					put(grammarAccess.getFlowRouteAccess().getGroup_13(), "rule__FlowRoute__Group_13__0");
+					put(grammarAccess.getDirectionAccess().getGroup(), "rule__Direction__Group__0");
+					put(grammarAccess.getDirectionAccess().getGroup_6(), "rule__Direction__Group_6__0");
+					put(grammarAccess.getDirectionAccess().getGroup_6_3(), "rule__Direction__Group_6_3__0");
+					put(grammarAccess.getDirectionAccess().getGroup_7(), "rule__Direction__Group_7__0");
+					put(grammarAccess.getDirectionAccess().getGroup_10(), "rule__Direction__Group_10__0");
+					put(grammarAccess.getHopAccess().getGroup(), "rule__Hop__Group__0");
+					put(grammarAccess.getHopAccess().getGroup_4(), "rule__Hop__Group_4__0");
+					put(grammarAccess.getEIntegerObjectAccess().getGroup(), "rule__EIntegerObject__Group__0");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup(), "rule__PhysicalNetworkInterface__Group__0");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5(), "rule__PhysicalNetworkInterface__Group_5__0");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3(), "rule__PhysicalNetworkInterface__Group_5_3__0");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8(), "rule__PhysicalNetworkInterface__Group_8__0");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3(), "rule__PhysicalNetworkInterface__Group_8_3__0");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup(), "rule__VirtualNetworkInterface__Group__0");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5(), "rule__VirtualNetworkInterface__Group_5__0");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3(), "rule__VirtualNetworkInterface__Group_5_3__0");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8(), "rule__VirtualNetworkInterface__Group_8__0");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3(), "rule__VirtualNetworkInterface__Group_8_3__0");
+					put(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3(), "rule__NetworkInfrastructure__DataCenterNameAssignment_3");
+					put(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5(), "rule__NetworkInfrastructure__DataCenterAltNameAssignment_5");
+					put(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7(), "rule__NetworkInfrastructure__TrafficAssignment_7");
+					put(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9(), "rule__NetworkInfrastructure__StructureAssignment_9");
+					put(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11(), "rule__NetworkInfrastructure__ConfigurationAssignment_11");
+					put(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2(), "rule__NetworkInfrastructure__ParamsAssignment_12_2");
+					put(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1(), "rule__NetworkInfrastructure__ParamsAssignment_12_3_1");
+					put(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4(), "rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4");
+					put(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6(), "rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6");
+					put(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8(), "rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8");
+					put(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10(), "rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10");
+					put(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4(), "rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4");
+					put(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6(), "rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6");
+					put(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8(), "rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8");
+					put(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10(), "rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10");
+					put(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4(), "rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4");
+					put(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1(), "rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1");
+					put(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4(), "rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4");
+					put(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1(), "rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1");
+					put(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3(), "rule__IntermediateNodePerfSpec__DataplaneAssignment_3");
+					put(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5(), "rule__IntermediateNodePerfSpec__ControlplaneAssignment_5");
+					put(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3(), "rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3");
+					put(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5(), "rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5");
+					put(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7(), "rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7");
+					put(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3(), "rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3");
+					put(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5(), "rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5");
+					put(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7(), "rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7");
+					put(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9(), "rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9");
+					put(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3(), "rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3");
+					put(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1(), "rule__EndNodePerfSpec__DataplaneAssignment_4_1");
+					put(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1(), "rule__EndNodePerfSpec__ControlplaneAssignment_5_1");
+					put(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2(), "rule__NetworkTraffic__FlowsAssignment_3_2");
+					put(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1(), "rule__NetworkTraffic__FlowsAssignment_3_3_1");
+					put(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2(), "rule__NetworkTraffic__SoftwareAssignment_4_2");
+					put(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1(), "rule__NetworkTraffic__SoftwareAssignment_4_3_1");
+					put(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2(), "rule__NetworkStructure__NodesAssignment_3_2");
+					put(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1(), "rule__NetworkStructure__NodesAssignment_3_3_1");
+					put(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2(), "rule__NetworkStructure__LinksAssignment_4_2");
+					put(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1(), "rule__NetworkStructure__LinksAssignment_4_3_1");
+					put(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3(), "rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3");
+					put(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5(), "rule__NetworkConfiguration__RoutesAssignment_5");
+					put(grammarAccess.getExperimentParamAccess().getNameAssignment_1(), "rule__ExperimentParam__NameAssignment_1");
+					put(grammarAccess.getExperimentParamAccess().getValueAssignment_4(), "rule__ExperimentParam__ValueAssignment_4");
+					put(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1(), "rule__SoftwareComponent__IdAssignment_1");
+					put(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4(), "rule__SoftwareComponent__NameAssignment_4");
+					put(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2(), "rule__SoftwareComponent__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1(), "rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7(), "rule__SoftwareComponent__DeployedOnAssignment_7");
+					put(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2(), "rule__SoftwareComponent__TrafficSourcesAssignment_8_2");
+					put(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1(), "rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1");
+					put(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1(), "rule__EntityAddress__AddressAssignment_3_1");
+					put(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1(), "rule__EntityAddress__AddressGivenByAssignment_4_1");
+					put(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0(), "rule__ONOFFFlow__StartStateAssignment_0");
+					put(grammarAccess.getONOFFFlowAccess().getIdAssignment_2(), "rule__ONOFFFlow__IdAssignment_2");
+					put(grammarAccess.getONOFFFlowAccess().getNameAssignment_5(), "rule__ONOFFFlow__NameAssignment_5");
+					put(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2(), "rule__ONOFFFlow__AlternativeNamesAssignment_6_2");
+					put(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1(), "rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1");
+					put(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1(), "rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1");
+					put(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1(), "rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1");
+					put(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2(), "rule__ONOFFFlow__DestinationAddressesAssignment_9_2");
+					put(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1(), "rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1");
+					put(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11(), "rule__ONOFFFlow__ONstateIATAssignment_11");
+					put(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13(), "rule__ONOFFFlow__ONstateDurationAssignment_13");
+					put(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15(), "rule__ONOFFFlow__OFFstateDurationAssignment_15");
+					put(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17(), "rule__ONOFFFlow__PacketLengthAssignment_17");
+					put(grammarAccess.getGenericFlowAccess().getIdAssignment_1(), "rule__GenericFlow__IdAssignment_1");
+					put(grammarAccess.getGenericFlowAccess().getNameAssignment_4(), "rule__GenericFlow__NameAssignment_4");
+					put(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2(), "rule__GenericFlow__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1(), "rule__GenericFlow__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1(), "rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1");
+					put(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1(), "rule__GenericFlow__SourceSoftwareComponentAssignment_7_1");
+					put(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2(), "rule__GenericFlow__DestinationAddressesAssignment_8_2");
+					put(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1(), "rule__GenericFlow__DestinationAddressesAssignment_8_3_1");
+					put(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10(), "rule__GenericFlow__DataSizeAssignment_10");
+					put(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0(), "rule__NetworkProtocol__DeliveryGuaranteedAssignment_0");
+					put(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2(), "rule__NetworkProtocol__NameAssignment_2");
+					put(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2(), "rule__NetworkProtocol__AlternativeNamesAssignment_4_2");
+					put(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1(), "rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1");
+					put(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6(), "rule__NetworkProtocol__MtuAssignment_6");
+					put(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8(), "rule__NetworkProtocol__HeadersLengthAssignment_8");
+					put(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10(), "rule__NetworkProtocol__DataUnitLengthAssignment_10");
+					put(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1(), "rule__NetworkProtocol__ConnectionlessAssignment_11_1");
+					put(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3(), "rule__ConstantDoubleVariable__ValueAssignment_3");
+					put(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1(), "rule__ConstantDoubleVariable__UnitAssignment_4_1");
+					put(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3(), "rule__ConstantLongVariable__ValueAssignment_3");
+					put(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1(), "rule__ConstantLongVariable__UnitAssignment_4_1");
+					put(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1(), "rule__RandomVariable__UnitAssignment_2_1");
+					put(grammarAccess.getRandomVariableAccess().getCdfAssignment_4(), "rule__RandomVariable__CdfAssignment_4");
+					put(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3(), "rule__ContinuousFunction__NumArgsAssignment_3");
+					put(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5(), "rule__ContinuousFunction__EquationAssignment_5");
+					put(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1(), "rule__ContinuousFunction__UnitAssignment_6_1");
+					put(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3(), "rule__DiscreteFunction__NumArgsAssignment_3");
+					put(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1(), "rule__DiscreteFunction__UnitAssignment_4_1");
+					put(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7(), "rule__DiscreteFunction__XAssignment_7");
+					put(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1(), "rule__DiscreteFunction__XAssignment_8_1");
+					put(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11(), "rule__DiscreteFunction__YAssignment_11");
+					put(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3(), "rule__SpeedUnit__PrefixAssignment_3");
+					put(grammarAccess.getSpeedUnitAccess().getValueAssignment_5(), "rule__SpeedUnit__ValueAssignment_5");
+					put(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7(), "rule__SpeedUnit__UnitAssignment_7");
+					put(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2(), "rule__DataSeries__DataAssignment_3_2");
+					put(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1(), "rule__DataSeries__DataAssignment_3_3_1");
+					put(grammarAccess.getTrafficSourceAccess().getIdAssignment_1(), "rule__TrafficSource__IdAssignment_1");
+					put(grammarAccess.getTrafficSourceAccess().getNameAssignment_4(), "rule__TrafficSource__NameAssignment_4");
+					put(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2(), "rule__TrafficSource__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1(), "rule__TrafficSource__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2(), "rule__TrafficSource__AddressesAssignment_6_2");
+					put(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1(), "rule__TrafficSource__AddressesAssignment_6_3_1");
+					put(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9(), "rule__TrafficSource__WorkloadAssignment_9");
+					put(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1(), "rule__TrafficSource__WorkloadAssignment_10_1");
+					put(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2(), "rule__GenericWorkload__ActionsAssignment_3_2");
+					put(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1(), "rule__GenericWorkload__ActionsAssignment_3_3_1");
+					put(grammarAccess.getBranchActionAccess().getInternAssignment_4(), "rule__BranchAction__InternAssignment_4");
+					put(grammarAccess.getBranchActionAccess().getInternAssignment_5_1(), "rule__BranchAction__InternAssignment_5_1");
+					put(grammarAccess.getLoopActionAccess().getInternAssignment_3(), "rule__LoopAction__InternAssignment_3");
+					put(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5(), "rule__LoopAction__NumIterationsAssignment_5");
+					put(grammarAccess.getSequenceActionAccess().getInternAssignment_4(), "rule__SequenceAction__InternAssignment_4");
+					put(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1(), "rule__SequenceAction__InternAssignment_5_1");
+					put(grammarAccess.getTransmitActionAccess().getFlowAssignment_3(), "rule__TransmitAction__FlowAssignment_3");
+					put(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3(), "rule__WaitAction__WaitTimeAssignment_3");
+					put(grammarAccess.getVirtualNodeAccess().getIdAssignment_1(), "rule__VirtualNode__IdAssignment_1");
+					put(grammarAccess.getVirtualNodeAccess().getNameAssignment_4(), "rule__VirtualNode__NameAssignment_4");
+					put(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2(), "rule__VirtualNode__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1(), "rule__VirtualNode__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2(), "rule__VirtualNode__SoftwareAssignment_6_2");
+					put(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1(), "rule__VirtualNode__SoftwareAssignment_6_3_1");
+					put(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8(), "rule__VirtualNode__HostedOnAssignment_8");
+					put(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10(), "rule__VirtualNode__PerformanceAssignment_10");
+					put(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2(), "rule__VirtualNode__InterfacesAssignment_11_2");
+					put(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1(), "rule__VirtualNode__InterfacesAssignment_11_3_1");
+					put(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1(), "rule__PhysicalNode__IdAssignment_1");
+					put(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4(), "rule__PhysicalNode__NameAssignment_4");
+					put(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2(), "rule__PhysicalNode__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1(), "rule__PhysicalNode__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2(), "rule__PhysicalNode__SoftwareAssignment_6_2");
+					put(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1(), "rule__PhysicalNode__SoftwareAssignment_6_3_1");
+					put(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2(), "rule__PhysicalNode__HostsAssignment_7_2");
+					put(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1(), "rule__PhysicalNode__HostsAssignment_7_3_1");
+					put(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9(), "rule__PhysicalNode__PerformanceAssignment_9");
+					put(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2(), "rule__PhysicalNode__InterfacesAssignment_10_2");
+					put(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1(), "rule__PhysicalNode__InterfacesAssignment_10_3_1");
+					put(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1(), "rule__PhysicalLink__IdAssignment_1");
+					put(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4(), "rule__PhysicalLink__NameAssignment_4");
+					put(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2(), "rule__PhysicalLink__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1(), "rule__PhysicalLink__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8(), "rule__PhysicalLink__ConnectsAssignment_8");
+					put(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1(), "rule__PhysicalLink__ConnectsAssignment_9_1");
+					put(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12(), "rule__PhysicalLink__PerformanceAssignment_12");
+					put(grammarAccess.getVirtualLinkAccess().getIdAssignment_1(), "rule__VirtualLink__IdAssignment_1");
+					put(grammarAccess.getVirtualLinkAccess().getNameAssignment_4(), "rule__VirtualLink__NameAssignment_4");
+					put(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2(), "rule__VirtualLink__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1(), "rule__VirtualLink__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8(), "rule__VirtualLink__ConnectsAssignment_8");
+					put(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1(), "rule__VirtualLink__ConnectsAssignment_9_1");
+					put(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12(), "rule__VirtualLink__PerformanceAssignment_12");
+					put(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2(), "rule__ProtocolsRepository__StacksAssignment_2_2");
+					put(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1(), "rule__ProtocolsRepository__StacksAssignment_2_3_1");
+					put(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5(), "rule__ProtocolsRepository__ProtocolsAssignment_5");
+					put(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1(), "rule__ProtocolsRepository__ProtocolsAssignment_6_1");
+					put(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2(), "rule__RoutesRepository__RoutesAssignment_3_2");
+					put(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1(), "rule__RoutesRepository__RoutesAssignment_3_3_1");
+					put(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2(), "rule__RoutesRepository__FlowRoutesAssignment_4_2");
+					put(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1(), "rule__RoutesRepository__FlowRoutesAssignment_4_3_1");
+					put(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2(), "rule__RoutesRepository__DirectionsAssignment_5_2");
+					put(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1(), "rule__RoutesRepository__DirectionsAssignment_5_3_1");
+					put(grammarAccess.getProtocolStackAccess().getNameAssignment_1(), "rule__ProtocolStack__NameAssignment_1");
+					put(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2(), "rule__ProtocolStack__AlternativeNamesAssignment_3_2");
+					put(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1(), "rule__ProtocolStack__AlternativeNamesAssignment_3_3_1");
+					put(grammarAccess.getProtocolStackAccess().getLayersAssignment_6(), "rule__ProtocolStack__LayersAssignment_6");
+					put(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1(), "rule__ProtocolStack__LayersAssignment_7_1");
+					put(grammarAccess.getProtocolLayerAccess().getNameAssignment_1(), "rule__ProtocolLayer__NameAssignment_1");
+					put(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2(), "rule__ProtocolLayer__AlternativeNamesAssignment_3_2");
+					put(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1(), "rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1");
+					put(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5(), "rule__ProtocolLayer__ProtocolAssignment_5");
+					put(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1(), "rule__ProtocolLayer__IsCarriedByAssignment_6_1");
+					put(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1(), "rule__ProtocolLayer__CarriesAssignment_7_1");
+					put(grammarAccess.getRouteAccess().getIdAssignment_1(), "rule__Route__IdAssignment_1");
+					put(grammarAccess.getRouteAccess().getNameAssignment_4(), "rule__Route__NameAssignment_4");
+					put(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2(), "rule__Route__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1(), "rule__Route__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1(), "rule__Route__NumHopsAssignment_6_1");
+					put(grammarAccess.getRouteAccess().getStartAssignment_8(), "rule__Route__StartAssignment_8");
+					put(grammarAccess.getRouteAccess().getEndAssignment_10(), "rule__Route__EndAssignment_10");
+					put(grammarAccess.getRouteAccess().getHopsAssignment_11_1(), "rule__Route__HopsAssignment_11_1");
+					put(grammarAccess.getFlowRouteAccess().getIdAssignment_1(), "rule__FlowRoute__IdAssignment_1");
+					put(grammarAccess.getFlowRouteAccess().getNameAssignment_4(), "rule__FlowRoute__NameAssignment_4");
+					put(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2(), "rule__FlowRoute__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1(), "rule__FlowRoute__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1(), "rule__FlowRoute__NumHopsAssignment_6_1");
+					put(grammarAccess.getFlowRouteAccess().getFlowAssignment_8(), "rule__FlowRoute__FlowAssignment_8");
+					put(grammarAccess.getFlowRouteAccess().getStartAssignment_10(), "rule__FlowRoute__StartAssignment_10");
+					put(grammarAccess.getFlowRouteAccess().getEndAssignment_12(), "rule__FlowRoute__EndAssignment_12");
+					put(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1(), "rule__FlowRoute__HopsAssignment_13_1");
+					put(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0(), "rule__Direction__IsDefaultAssignment_0");
+					put(grammarAccess.getDirectionAccess().getIdAssignment_2(), "rule__Direction__IdAssignment_2");
+					put(grammarAccess.getDirectionAccess().getNameAssignment_5(), "rule__Direction__NameAssignment_5");
+					put(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2(), "rule__Direction__AlternativeNamesAssignment_6_2");
+					put(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1(), "rule__Direction__AlternativeNamesAssignment_6_3_1");
+					put(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1(), "rule__Direction__DistanceAssignment_7_1");
+					put(grammarAccess.getDirectionAccess().getOnNodeAssignment_9(), "rule__Direction__OnNodeAssignment_9");
+					put(grammarAccess.getDirectionAccess().getFlowAssignment_10_1(), "rule__Direction__FlowAssignment_10_1");
+					put(grammarAccess.getDirectionAccess().getViaAssignment_12(), "rule__Direction__ViaAssignment_12");
+					put(grammarAccess.getHopAccess().getInterfacerefAssignment_3(), "rule__Hop__InterfacerefAssignment_3");
+					put(grammarAccess.getHopAccess().getNextHopAssignment_4_1(), "rule__Hop__NextHopAssignment_4_1");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1(), "rule__PhysicalNetworkInterface__IdAssignment_1");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4(), "rule__PhysicalNetworkInterface__NameAssignment_4");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2(), "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1(), "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7(), "rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2(), "rule__PhysicalNetworkInterface__AddressesAssignment_8_2");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1(), "rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1");
+					put(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10(), "rule__PhysicalNetworkInterface__PerformanceAssignment_10");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1(), "rule__VirtualNetworkInterface__IdAssignment_1");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4(), "rule__VirtualNetworkInterface__NameAssignment_4");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2(), "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1(), "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7(), "rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2(), "rule__VirtualNetworkInterface__AddressesAssignment_8_2");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1(), "rule__VirtualNetworkInterface__AddressesAssignment_8_3_1");
+					put(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10(), "rule__VirtualNetworkInterface__PerformanceAssignment_10");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextParser typedParser = (tools.descatres.dml.dni.text.ui.contentassist.antlr.internal.InternalDNITextParser) parser;
+			typedParser.entryRuleNetworkInfrastructure();
+			return typedParser.getFollowElements();
+		} catch(RecognitionException ex) {
+			throw new RuntimeException(ex);
+		}		
+	}
+	
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+	
+	public DNITextGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(DNITextGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ec71bfd5dee71bb0dfa3210d929e034ff165b4c
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/PartialDNITextContentAssistParser.java
@@ -0,0 +1,38 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/*
+ * Template CodetemplatesGeneratorFragment.xpt
+ */
+public class PartialDNITextContentAssistParser extends DNITextParser implements IPartialContentAssistParser {
+
+	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();
+	}
+
+}
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g
new file mode 100644
index 0000000000000000000000000000000000000000..6d3d29797ff043af2e4c314fe3aac8c55cd2f2ee
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g
@@ -0,0 +1,31204 @@
+/*
+ * generated by Xtext
+ */
+grammar InternalDNIText;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	
+}
+
+@lexer::header {
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import tools.descatres.dml.dni.text.services.DNITextGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private DNITextGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(DNITextGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleNetworkInfrastructure
+entryRuleNetworkInfrastructure 
+:
+{ before(grammarAccess.getNetworkInfrastructureRule()); }
+	 ruleNetworkInfrastructure
+{ after(grammarAccess.getNetworkInfrastructureRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInfrastructure
+ruleNetworkInfrastructure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup()); }
+(rule__NetworkInfrastructure__Group__0)
+{ after(grammarAccess.getNetworkInfrastructureAccess().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().getAlternatives()); }
+(rule__Flow__Alternatives)
+{ after(grammarAccess.getFlowAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNode
+entryRuleNode 
+:
+{ before(grammarAccess.getNodeRule()); }
+	 ruleNode
+{ after(grammarAccess.getNodeRule()); } 
+	 EOF 
+;
+
+// Rule Node
+ruleNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNodeAccess().getAlternatives()); }
+(rule__Node__Alternatives)
+{ after(grammarAccess.getNodeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLink
+entryRuleLink 
+:
+{ before(grammarAccess.getLinkRule()); }
+	 ruleLink
+{ after(grammarAccess.getLinkRule()); } 
+	 EOF 
+;
+
+// Rule Link
+ruleLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLinkAccess().getAlternatives()); }
+(rule__Link__Alternatives)
+{ after(grammarAccess.getLinkAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDependency
+entryRuleDependency 
+:
+{ before(grammarAccess.getDependencyRule()); }
+	 ruleDependency
+{ after(grammarAccess.getDependencyRule()); } 
+	 EOF 
+;
+
+// Rule Dependency
+ruleDependency
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDependencyAccess().getAlternatives()); }
+(rule__Dependency__Alternatives)
+{ after(grammarAccess.getDependencyAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDNIUnit
+entryRuleDNIUnit 
+:
+{ before(grammarAccess.getDNIUnitRule()); }
+	 ruleDNIUnit
+{ after(grammarAccess.getDNIUnitRule()); } 
+	 EOF 
+;
+
+// Rule DNIUnit
+ruleDNIUnit
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); }
+	ruleSpeedUnit
+{ after(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFunction
+entryRuleFunction 
+:
+{ before(grammarAccess.getFunctionRule()); }
+	 ruleFunction
+{ after(grammarAccess.getFunctionRule()); } 
+	 EOF 
+;
+
+// Rule Function
+ruleFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFunctionAccess().getAlternatives()); }
+(rule__Function__Alternatives)
+{ after(grammarAccess.getFunctionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWorkload
+entryRuleWorkload 
+:
+{ before(grammarAccess.getWorkloadRule()); }
+	 ruleWorkload
+{ after(grammarAccess.getWorkloadRule()); } 
+	 EOF 
+;
+
+// Rule Workload
+ruleWorkload
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); }
+	ruleGenericWorkload
+{ after(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAbstractAction
+entryRuleAbstractAction 
+:
+{ before(grammarAccess.getAbstractActionRule()); }
+	 ruleAbstractAction
+{ after(grammarAccess.getAbstractActionRule()); } 
+	 EOF 
+;
+
+// Rule AbstractAction
+ruleAbstractAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAbstractActionAccess().getAlternatives()); }
+(rule__AbstractAction__Alternatives)
+{ after(grammarAccess.getAbstractActionAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePerformanceSpecification
+entryRulePerformanceSpecification 
+:
+{ before(grammarAccess.getPerformanceSpecificationRule()); }
+	 rulePerformanceSpecification
+{ after(grammarAccess.getPerformanceSpecificationRule()); } 
+	 EOF 
+;
+
+// Rule PerformanceSpecification
+rulePerformanceSpecification
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); }
+(rule__PerformanceSpecification__Alternatives)
+{ after(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkInterfacePerfSpec
+entryRuleNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getNetworkInterfacePerfSpecRule()); }
+	 ruleNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInterfacePerfSpec
+ruleNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); }
+(rule__NetworkInterfacePerfSpec__Alternatives)
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualNetworkInterfacePerfSpec
+entryRuleVirtualNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); }
+	 ruleVirtualNetworkInterfacePerfSpec
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNetworkInterfacePerfSpec
+ruleVirtualNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); }
+(rule__VirtualNetworkInterfacePerfSpec__Group__0)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNetworkInterfacePerfSpec
+entryRulePhysicalNetworkInterfacePerfSpec 
+:
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); }
+	 rulePhysicalNetworkInterfacePerfSpec
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNetworkInterfacePerfSpec
+rulePhysicalNetworkInterfacePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); }
+(rule__PhysicalNetworkInterfacePerfSpec__Group__0)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLinkPerfSpec
+entryRuleLinkPerfSpec 
+:
+{ before(grammarAccess.getLinkPerfSpecRule()); }
+	 ruleLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule LinkPerfSpec
+ruleLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); }
+(rule__LinkPerfSpec__Alternatives)
+{ after(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualLinkPerfSpec
+entryRuleVirtualLinkPerfSpec 
+:
+{ before(grammarAccess.getVirtualLinkPerfSpecRule()); }
+	 ruleVirtualLinkPerfSpec
+{ after(grammarAccess.getVirtualLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule VirtualLinkPerfSpec
+ruleVirtualLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); }
+(rule__VirtualLinkPerfSpec__Group__0)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalLinkPerfSpec
+entryRulePhysicalLinkPerfSpec 
+:
+{ before(grammarAccess.getPhysicalLinkPerfSpecRule()); }
+	 rulePhysicalLinkPerfSpec
+{ after(grammarAccess.getPhysicalLinkPerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalLinkPerfSpec
+rulePhysicalLinkPerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); }
+(rule__PhysicalLinkPerfSpec__Group__0)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIntermediateNodePerfSpec
+entryRuleIntermediateNodePerfSpec 
+:
+{ before(grammarAccess.getIntermediateNodePerfSpecRule()); }
+	 ruleIntermediateNodePerfSpec
+{ after(grammarAccess.getIntermediateNodePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule IntermediateNodePerfSpec
+ruleIntermediateNodePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); }
+(rule__IntermediateNodePerfSpec__Group__0)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleControlPlanePerfSpec
+entryRuleControlPlanePerfSpec 
+:
+{ before(grammarAccess.getControlPlanePerfSpecRule()); }
+	 ruleControlPlanePerfSpec
+{ after(grammarAccess.getControlPlanePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule ControlPlanePerfSpec
+ruleControlPlanePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); }
+(rule__ControlPlanePerfSpec__Group__0)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataPlanePerfSpec
+entryRuleDataPlanePerfSpec 
+:
+{ before(grammarAccess.getDataPlanePerfSpecRule()); }
+	 ruleDataPlanePerfSpec
+{ after(grammarAccess.getDataPlanePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule DataPlanePerfSpec
+ruleDataPlanePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); }
+(rule__DataPlanePerfSpec__Group__0)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEndNodePerfSpec
+entryRuleEndNodePerfSpec 
+:
+{ before(grammarAccess.getEndNodePerfSpecRule()); }
+	 ruleEndNodePerfSpec
+{ after(grammarAccess.getEndNodePerfSpecRule()); } 
+	 EOF 
+;
+
+// Rule EndNodePerfSpec
+ruleEndNodePerfSpec
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup()); }
+(rule__EndNodePerfSpec__Group__0)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkInterface
+entryRuleNetworkInterface 
+:
+{ before(grammarAccess.getNetworkInterfaceRule()); }
+	 ruleNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule NetworkInterface
+ruleNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); }
+(rule__NetworkInterface__Alternatives)
+{ after(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkTraffic
+entryRuleNetworkTraffic 
+:
+{ before(grammarAccess.getNetworkTrafficRule()); }
+	 ruleNetworkTraffic
+{ after(grammarAccess.getNetworkTrafficRule()); } 
+	 EOF 
+;
+
+// Rule NetworkTraffic
+ruleNetworkTraffic
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup()); }
+(rule__NetworkTraffic__Group__0)
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkStructure
+entryRuleNetworkStructure 
+:
+{ before(grammarAccess.getNetworkStructureRule()); }
+	 ruleNetworkStructure
+{ after(grammarAccess.getNetworkStructureRule()); } 
+	 EOF 
+;
+
+// Rule NetworkStructure
+ruleNetworkStructure
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup()); }
+(rule__NetworkStructure__Group__0)
+{ after(grammarAccess.getNetworkStructureAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkConfiguration
+entryRuleNetworkConfiguration 
+:
+{ before(grammarAccess.getNetworkConfigurationRule()); }
+	 ruleNetworkConfiguration
+{ after(grammarAccess.getNetworkConfigurationRule()); } 
+	 EOF 
+;
+
+// Rule NetworkConfiguration
+ruleNetworkConfiguration
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getGroup()); }
+(rule__NetworkConfiguration__Group__0)
+{ after(grammarAccess.getNetworkConfigurationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleExperimentParam
+entryRuleExperimentParam 
+:
+{ before(grammarAccess.getExperimentParamRule()); }
+	 ruleExperimentParam
+{ after(grammarAccess.getExperimentParamRule()); } 
+	 EOF 
+;
+
+// Rule ExperimentParam
+ruleExperimentParam
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getExperimentParamAccess().getGroup()); }
+(rule__ExperimentParam__Group__0)
+{ after(grammarAccess.getExperimentParamAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEString
+entryRuleEString 
+:
+{ before(grammarAccess.getEStringRule()); }
+	 ruleEString
+{ after(grammarAccess.getEStringRule()); } 
+	 EOF 
+;
+
+// Rule EString
+ruleEString
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEStringAccess().getAlternatives()); }
+(rule__EString__Alternatives)
+{ after(grammarAccess.getEStringAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSoftwareComponent
+entryRuleSoftwareComponent 
+:
+{ before(grammarAccess.getSoftwareComponentRule()); }
+	 ruleSoftwareComponent
+{ after(grammarAccess.getSoftwareComponentRule()); } 
+	 EOF 
+;
+
+// Rule SoftwareComponent
+ruleSoftwareComponent
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup()); }
+(rule__SoftwareComponent__Group__0)
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEntityAddress
+entryRuleEntityAddress 
+:
+{ before(grammarAccess.getEntityAddressRule()); }
+	 ruleEntityAddress
+{ after(grammarAccess.getEntityAddressRule()); } 
+	 EOF 
+;
+
+// Rule EntityAddress
+ruleEntityAddress
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup()); }
+(rule__EntityAddress__Group__0)
+{ after(grammarAccess.getEntityAddressAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleONOFFFlow
+entryRuleONOFFFlow 
+:
+{ before(grammarAccess.getONOFFFlowRule()); }
+	 ruleONOFFFlow
+{ after(grammarAccess.getONOFFFlowRule()); } 
+	 EOF 
+;
+
+// Rule ONOFFFlow
+ruleONOFFFlow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup()); }
+(rule__ONOFFFlow__Group__0)
+{ after(grammarAccess.getONOFFFlowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGenericFlow
+entryRuleGenericFlow 
+:
+{ before(grammarAccess.getGenericFlowRule()); }
+	 ruleGenericFlow
+{ after(grammarAccess.getGenericFlowRule()); } 
+	 EOF 
+;
+
+// Rule GenericFlow
+ruleGenericFlow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup()); }
+(rule__GenericFlow__Group__0)
+{ after(grammarAccess.getGenericFlowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNetworkProtocol
+entryRuleNetworkProtocol 
+:
+{ before(grammarAccess.getNetworkProtocolRule()); }
+	 ruleNetworkProtocol
+{ after(grammarAccess.getNetworkProtocolRule()); } 
+	 EOF 
+;
+
+// Rule NetworkProtocol
+ruleNetworkProtocol
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup()); }
+(rule__NetworkProtocol__Group__0)
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEInt
+entryRuleEInt 
+:
+{ before(grammarAccess.getEIntRule()); }
+	 ruleEInt
+{ after(grammarAccess.getEIntRule()); } 
+	 EOF 
+;
+
+// Rule EInt
+ruleEInt
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEIntAccess().getGroup()); }
+(rule__EInt__Group__0)
+{ after(grammarAccess.getEIntAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEBoolean
+entryRuleEBoolean 
+:
+{ before(grammarAccess.getEBooleanRule()); }
+	 ruleEBoolean
+{ after(grammarAccess.getEBooleanRule()); } 
+	 EOF 
+;
+
+// Rule EBoolean
+ruleEBoolean
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEBooleanAccess().getAlternatives()); }
+(rule__EBoolean__Alternatives)
+{ after(grammarAccess.getEBooleanAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConstantDoubleVariable
+entryRuleConstantDoubleVariable 
+:
+{ before(grammarAccess.getConstantDoubleVariableRule()); }
+	 ruleConstantDoubleVariable
+{ after(grammarAccess.getConstantDoubleVariableRule()); } 
+	 EOF 
+;
+
+// Rule ConstantDoubleVariable
+ruleConstantDoubleVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getGroup()); }
+(rule__ConstantDoubleVariable__Group__0)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleConstantLongVariable
+entryRuleConstantLongVariable 
+:
+{ before(grammarAccess.getConstantLongVariableRule()); }
+	 ruleConstantLongVariable
+{ after(grammarAccess.getConstantLongVariableRule()); } 
+	 EOF 
+;
+
+// Rule ConstantLongVariable
+ruleConstantLongVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getGroup()); }
+(rule__ConstantLongVariable__Group__0)
+{ after(grammarAccess.getConstantLongVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRandomVariable
+entryRuleRandomVariable 
+:
+{ before(grammarAccess.getRandomVariableRule()); }
+	 ruleRandomVariable
+{ after(grammarAccess.getRandomVariableRule()); } 
+	 EOF 
+;
+
+// Rule RandomVariable
+ruleRandomVariable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRandomVariableAccess().getGroup()); }
+(rule__RandomVariable__Group__0)
+{ after(grammarAccess.getRandomVariableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleContinuousFunction
+entryRuleContinuousFunction 
+:
+{ before(grammarAccess.getContinuousFunctionRule()); }
+	 ruleContinuousFunction
+{ after(grammarAccess.getContinuousFunctionRule()); } 
+	 EOF 
+;
+
+// Rule ContinuousFunction
+ruleContinuousFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getGroup()); }
+(rule__ContinuousFunction__Group__0)
+{ after(grammarAccess.getContinuousFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDiscreteFunction
+entryRuleDiscreteFunction 
+:
+{ before(grammarAccess.getDiscreteFunctionRule()); }
+	 ruleDiscreteFunction
+{ after(grammarAccess.getDiscreteFunctionRule()); } 
+	 EOF 
+;
+
+// Rule DiscreteFunction
+ruleDiscreteFunction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup()); }
+(rule__DiscreteFunction__Group__0)
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEFloat
+entryRuleEFloat 
+:
+{ before(grammarAccess.getEFloatRule()); }
+	 ruleEFloat
+{ after(grammarAccess.getEFloatRule()); } 
+	 EOF 
+;
+
+// Rule EFloat
+ruleEFloat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEFloatAccess().getGroup()); }
+(rule__EFloat__Group__0)
+{ after(grammarAccess.getEFloatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSpeedUnit
+entryRuleSpeedUnit 
+:
+{ before(grammarAccess.getSpeedUnitRule()); }
+	 ruleSpeedUnit
+{ after(grammarAccess.getSpeedUnitRule()); } 
+	 EOF 
+;
+
+// Rule SpeedUnit
+ruleSpeedUnit
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getGroup()); }
+(rule__SpeedUnit__Group__0)
+{ after(grammarAccess.getSpeedUnitAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEDouble
+entryRuleEDouble 
+:
+{ before(grammarAccess.getEDoubleRule()); }
+	 ruleEDouble
+{ after(grammarAccess.getEDoubleRule()); } 
+	 EOF 
+;
+
+// Rule EDouble
+ruleEDouble
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup()); }
+(rule__EDouble__Group__0)
+{ after(grammarAccess.getEDoubleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleELong
+entryRuleELong 
+:
+{ before(grammarAccess.getELongRule()); }
+	 ruleELong
+{ after(grammarAccess.getELongRule()); } 
+	 EOF 
+;
+
+// Rule ELong
+ruleELong
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getELongAccess().getGroup()); }
+(rule__ELong__Group__0)
+{ after(grammarAccess.getELongAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDataSeries
+entryRuleDataSeries 
+:
+{ before(grammarAccess.getDataSeriesRule()); }
+	 ruleDataSeries
+{ after(grammarAccess.getDataSeriesRule()); } 
+	 EOF 
+;
+
+// Rule DataSeries
+ruleDataSeries
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup()); }
+(rule__DataSeries__Group__0)
+{ after(grammarAccess.getDataSeriesAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTrafficSource
+entryRuleTrafficSource 
+:
+{ before(grammarAccess.getTrafficSourceRule()); }
+	 ruleTrafficSource
+{ after(grammarAccess.getTrafficSourceRule()); } 
+	 EOF 
+;
+
+// Rule TrafficSource
+ruleTrafficSource
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup()); }
+(rule__TrafficSource__Group__0)
+{ after(grammarAccess.getTrafficSourceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGenericWorkload
+entryRuleGenericWorkload 
+:
+{ before(grammarAccess.getGenericWorkloadRule()); }
+	 ruleGenericWorkload
+{ after(grammarAccess.getGenericWorkloadRule()); } 
+	 EOF 
+;
+
+// Rule GenericWorkload
+ruleGenericWorkload
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup()); }
+(rule__GenericWorkload__Group__0)
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBranchAction
+entryRuleBranchAction 
+:
+{ before(grammarAccess.getBranchActionRule()); }
+	 ruleBranchAction
+{ after(grammarAccess.getBranchActionRule()); } 
+	 EOF 
+;
+
+// Rule BranchAction
+ruleBranchAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup()); }
+(rule__BranchAction__Group__0)
+{ after(grammarAccess.getBranchActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLoopAction
+entryRuleLoopAction 
+:
+{ before(grammarAccess.getLoopActionRule()); }
+	 ruleLoopAction
+{ after(grammarAccess.getLoopActionRule()); } 
+	 EOF 
+;
+
+// Rule LoopAction
+ruleLoopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLoopActionAccess().getGroup()); }
+(rule__LoopAction__Group__0)
+{ after(grammarAccess.getLoopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSequenceAction
+entryRuleSequenceAction 
+:
+{ before(grammarAccess.getSequenceActionRule()); }
+	 ruleSequenceAction
+{ after(grammarAccess.getSequenceActionRule()); } 
+	 EOF 
+;
+
+// Rule SequenceAction
+ruleSequenceAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSequenceActionAccess().getGroup()); }
+(rule__SequenceAction__Group__0)
+{ after(grammarAccess.getSequenceActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStartAction
+entryRuleStartAction 
+:
+{ before(grammarAccess.getStartActionRule()); }
+	 ruleStartAction
+{ after(grammarAccess.getStartActionRule()); } 
+	 EOF 
+;
+
+// Rule StartAction
+ruleStartAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStartActionAccess().getGroup()); }
+(rule__StartAction__Group__0)
+{ after(grammarAccess.getStartActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStopAction
+entryRuleStopAction 
+:
+{ before(grammarAccess.getStopActionRule()); }
+	 ruleStopAction
+{ after(grammarAccess.getStopActionRule()); } 
+	 EOF 
+;
+
+// Rule StopAction
+ruleStopAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStopActionAccess().getGroup()); }
+(rule__StopAction__Group__0)
+{ after(grammarAccess.getStopActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransmitAction
+entryRuleTransmitAction 
+:
+{ before(grammarAccess.getTransmitActionRule()); }
+	 ruleTransmitAction
+{ after(grammarAccess.getTransmitActionRule()); } 
+	 EOF 
+;
+
+// Rule TransmitAction
+ruleTransmitAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTransmitActionAccess().getGroup()); }
+(rule__TransmitAction__Group__0)
+{ after(grammarAccess.getTransmitActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleWaitAction
+entryRuleWaitAction 
+:
+{ before(grammarAccess.getWaitActionRule()); }
+	 ruleWaitAction
+{ after(grammarAccess.getWaitActionRule()); } 
+	 EOF 
+;
+
+// Rule WaitAction
+ruleWaitAction
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getWaitActionAccess().getGroup()); }
+(rule__WaitAction__Group__0)
+{ after(grammarAccess.getWaitActionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleVirtualNode
+entryRuleVirtualNode 
+:
+{ before(grammarAccess.getVirtualNodeRule()); }
+	 ruleVirtualNode
+{ after(grammarAccess.getVirtualNodeRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNode
+ruleVirtualNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup()); }
+(rule__VirtualNode__Group__0)
+{ after(grammarAccess.getVirtualNodeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNode
+entryRulePhysicalNode 
+:
+{ before(grammarAccess.getPhysicalNodeRule()); }
+	 rulePhysicalNode
+{ after(grammarAccess.getPhysicalNodeRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNode
+rulePhysicalNode
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup()); }
+(rule__PhysicalNode__Group__0)
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalLink
+entryRulePhysicalLink 
+:
+{ before(grammarAccess.getPhysicalLinkRule()); }
+	 rulePhysicalLink
+{ after(grammarAccess.getPhysicalLinkRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalLink
+rulePhysicalLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup()); }
+(rule__PhysicalLink__Group__0)
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualLink
+entryRuleVirtualLink 
+:
+{ before(grammarAccess.getVirtualLinkRule()); }
+	 ruleVirtualLink
+{ after(grammarAccess.getVirtualLinkRule()); } 
+	 EOF 
+;
+
+// Rule VirtualLink
+ruleVirtualLink
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup()); }
+(rule__VirtualLink__Group__0)
+{ after(grammarAccess.getVirtualLinkAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolsRepository
+entryRuleProtocolsRepository 
+:
+{ before(grammarAccess.getProtocolsRepositoryRule()); }
+	 ruleProtocolsRepository
+{ after(grammarAccess.getProtocolsRepositoryRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolsRepository
+ruleProtocolsRepository
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup()); }
+(rule__ProtocolsRepository__Group__0)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRoutesRepository
+entryRuleRoutesRepository 
+:
+{ before(grammarAccess.getRoutesRepositoryRule()); }
+	 ruleRoutesRepository
+{ after(grammarAccess.getRoutesRepositoryRule()); } 
+	 EOF 
+;
+
+// Rule RoutesRepository
+ruleRoutesRepository
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup()); }
+(rule__RoutesRepository__Group__0)
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolStack
+entryRuleProtocolStack 
+:
+{ before(grammarAccess.getProtocolStackRule()); }
+	 ruleProtocolStack
+{ after(grammarAccess.getProtocolStackRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolStack
+ruleProtocolStack
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup()); }
+(rule__ProtocolStack__Group__0)
+{ after(grammarAccess.getProtocolStackAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProtocolLayer
+entryRuleProtocolLayer 
+:
+{ before(grammarAccess.getProtocolLayerRule()); }
+	 ruleProtocolLayer
+{ after(grammarAccess.getProtocolLayerRule()); } 
+	 EOF 
+;
+
+// Rule ProtocolLayer
+ruleProtocolLayer
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup()); }
+(rule__ProtocolLayer__Group__0)
+{ after(grammarAccess.getProtocolLayerAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleRoute
+entryRuleRoute 
+:
+{ before(grammarAccess.getRouteRule()); }
+	 ruleRoute
+{ after(grammarAccess.getRouteRule()); } 
+	 EOF 
+;
+
+// Rule Route
+ruleRoute
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getRouteAccess().getGroup()); }
+(rule__Route__Group__0)
+{ after(grammarAccess.getRouteAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFlowRoute
+entryRuleFlowRoute 
+:
+{ before(grammarAccess.getFlowRouteRule()); }
+	 ruleFlowRoute
+{ after(grammarAccess.getFlowRouteRule()); } 
+	 EOF 
+;
+
+// Rule FlowRoute
+ruleFlowRoute
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup()); }
+(rule__FlowRoute__Group__0)
+{ after(grammarAccess.getFlowRouteAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDirection
+entryRuleDirection 
+:
+{ before(grammarAccess.getDirectionRule()); }
+	 ruleDirection
+{ after(grammarAccess.getDirectionRule()); } 
+	 EOF 
+;
+
+// Rule Direction
+ruleDirection
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup()); }
+(rule__Direction__Group__0)
+{ after(grammarAccess.getDirectionAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleHop
+entryRuleHop 
+:
+{ before(grammarAccess.getHopRule()); }
+	 ruleHop
+{ after(grammarAccess.getHopRule()); } 
+	 EOF 
+;
+
+// Rule Hop
+ruleHop
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getHopAccess().getGroup()); }
+(rule__Hop__Group__0)
+{ after(grammarAccess.getHopAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEIntegerObject
+entryRuleEIntegerObject 
+:
+{ before(grammarAccess.getEIntegerObjectRule()); }
+	 ruleEIntegerObject
+{ after(grammarAccess.getEIntegerObjectRule()); } 
+	 EOF 
+;
+
+// Rule EIntegerObject
+ruleEIntegerObject
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getGroup()); }
+(rule__EIntegerObject__Group__0)
+{ after(grammarAccess.getEIntegerObjectAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePhysicalNetworkInterface
+entryRulePhysicalNetworkInterface 
+:
+{ before(grammarAccess.getPhysicalNetworkInterfaceRule()); }
+	 rulePhysicalNetworkInterface
+{ after(grammarAccess.getPhysicalNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule PhysicalNetworkInterface
+rulePhysicalNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); }
+(rule__PhysicalNetworkInterface__Group__0)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleVirtualNetworkInterface
+entryRuleVirtualNetworkInterface 
+:
+{ before(grammarAccess.getVirtualNetworkInterfaceRule()); }
+	 ruleVirtualNetworkInterface
+{ after(grammarAccess.getVirtualNetworkInterfaceRule()); } 
+	 EOF 
+;
+
+// Rule VirtualNetworkInterface
+ruleVirtualNetworkInterface
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); }
+(rule__VirtualNetworkInterface__Group__0)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+// Rule UnitPrefix
+ruleUnitPrefix
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitPrefixAccess().getAlternatives()); }
+(rule__UnitPrefix__Alternatives)
+{ after(grammarAccess.getUnitPrefixAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule Speed
+ruleSpeed
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedAccess().getAlternatives()); }
+(rule__Speed__Alternatives)
+{ after(grammarAccess.getSpeedAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__Flow__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); }
+	ruleONOFFFlow
+{ after(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); }
+	ruleGenericFlow
+{ after(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Node__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); }
+	ruleVirtualNode
+{ after(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); }
+	rulePhysicalNode
+{ after(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Link__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); }
+	rulePhysicalLink
+{ after(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); }
+	ruleVirtualLink
+{ after(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Dependency__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); }
+	ruleConstantDoubleVariable
+{ after(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); }
+	ruleConstantLongVariable
+{ after(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); }
+	ruleRandomVariable
+{ after(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); }
+	ruleContinuousFunction
+{ after(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); }
+	ruleDiscreteFunction
+{ after(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Function__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); }
+	ruleContinuousFunction
+{ after(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); }
+	ruleDiscreteFunction
+{ after(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AbstractAction__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); }
+	ruleBranchAction
+{ after(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); }
+	ruleLoopAction
+{ after(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); }
+	ruleSequenceAction
+{ after(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); }
+	ruleStartAction
+{ after(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); }
+	ruleStopAction
+{ after(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); }
+	ruleTransmitAction
+{ after(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); }
+	ruleWaitAction
+{ after(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PerformanceSpecification__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); }
+	ruleIntermediateNodePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); }
+	ruleEndNodePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); }
+	ruleLinkPerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); }
+	ruleNetworkInterfacePerfSpec
+{ after(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInterfacePerfSpec__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); }
+	rulePhysicalNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); }
+	ruleVirtualNetworkInterfacePerfSpec
+{ after(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LinkPerfSpec__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); }
+	rulePhysicalLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); }
+	ruleVirtualLinkPerfSpec
+{ after(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInterface__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); }
+	rulePhysicalNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); }
+	ruleVirtualNetworkInterface
+{ after(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EString__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+	RULE_STRING
+{ after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+	RULE_ID
+{ after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EBoolean__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+
+	'true' 
+
+{ after(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+
+	'false' 
+
+{ after(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Alternatives_4_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+
+	'E' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); }
+)
+
+    |(
+{ before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+
+	'e' 
+
+{ after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnitPrefix__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); }
+(	'none' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); }
+(	'K' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); }
+(	'M' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); }
+(	'G' 
+)
+{ after(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Speed__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); }
+(	'BytesPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); }
+(	'bitsPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); }
+(	'packetsPerSec' 
+)
+{ after(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__NetworkInfrastructure__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__0__Impl
+	rule__NetworkInfrastructure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); }
+
+	'NetworkInfrastructure' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__1__Impl
+	rule__NetworkInfrastructure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__2__Impl
+	rule__NetworkInfrastructure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); }
+
+	'dataCenterName' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__3__Impl
+	rule__NetworkInfrastructure__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); }
+(rule__NetworkInfrastructure__DataCenterNameAssignment_3)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__4__Impl
+	rule__NetworkInfrastructure__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); }
+
+	'dataCenterAltName' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__5__Impl
+	rule__NetworkInfrastructure__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); }
+(rule__NetworkInfrastructure__DataCenterAltNameAssignment_5)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__6__Impl
+	rule__NetworkInfrastructure__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); }
+
+	'traffic' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__7__Impl
+	rule__NetworkInfrastructure__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); }
+(rule__NetworkInfrastructure__TrafficAssignment_7)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__8__Impl
+	rule__NetworkInfrastructure__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); }
+
+	'structure' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__9__Impl
+	rule__NetworkInfrastructure__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); }
+(rule__NetworkInfrastructure__StructureAssignment_9)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__10__Impl
+	rule__NetworkInfrastructure__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); }
+
+	'configuration' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__11__Impl
+	rule__NetworkInfrastructure__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); }
+(rule__NetworkInfrastructure__ConfigurationAssignment_11)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__12__Impl
+	rule__NetworkInfrastructure__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); }
+(rule__NetworkInfrastructure__Group_12__0)?
+{ after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__Group_12__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__0__Impl
+	rule__NetworkInfrastructure__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); }
+
+	'params' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__1__Impl
+	rule__NetworkInfrastructure__Group_12__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__2__Impl
+	rule__NetworkInfrastructure__Group_12__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); }
+(rule__NetworkInfrastructure__ParamsAssignment_12_2)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__3__Impl
+	rule__NetworkInfrastructure__Group_12__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); }
+(rule__NetworkInfrastructure__Group_12_3__0)*
+{ after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__Group_12_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12_3__0__Impl
+	rule__NetworkInfrastructure__Group_12_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkInfrastructure__Group_12_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkInfrastructure__Group_12_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__Group_12_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); }
+(rule__NetworkInfrastructure__ParamsAssignment_12_3_1)
+{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); }
+
+	'VirtualNetworkInterfacePerfSpec' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+
+	'isUp' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+(rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+(rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+
+	'MTU' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+(rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+
+	'interfaceSpeed' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl
+	rule__VirtualNetworkInterfacePerfSpec__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+(rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10)
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterfacePerfSpec__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); }
+
+	'PhysicalNetworkInterfacePerfSpec' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+
+	'isUp' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+(rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+(rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+
+	'MTU' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+(rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+
+	'interfaceSpeed' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl
+	rule__PhysicalNetworkInterfacePerfSpec__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+(rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10)
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLinkPerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__0__Impl
+	rule__VirtualLinkPerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__1__Impl
+	rule__VirtualLinkPerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); }
+
+	'VirtualLinkPerfSpec' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__2__Impl
+	rule__VirtualLinkPerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__3__Impl
+	rule__VirtualLinkPerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+
+	'propagationDelay' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__4__Impl
+	rule__VirtualLinkPerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+(rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__5__Impl
+	rule__VirtualLinkPerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); }
+(rule__VirtualLinkPerfSpec__Group_5__0)?
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLinkPerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group_5__0__Impl
+	rule__VirtualLinkPerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+
+	'maxSupportedBandwidth' 
+
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLinkPerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLinkPerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+(rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1)
+{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLinkPerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__0__Impl
+	rule__PhysicalLinkPerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__1__Impl
+	rule__PhysicalLinkPerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); }
+
+	'PhysicalLinkPerfSpec' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__2__Impl
+	rule__PhysicalLinkPerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__3__Impl
+	rule__PhysicalLinkPerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+
+	'propagationDelay' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__4__Impl
+	rule__PhysicalLinkPerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+(rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__5__Impl
+	rule__PhysicalLinkPerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); }
+(rule__PhysicalLinkPerfSpec__Group_5__0)?
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLinkPerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group_5__0__Impl
+	rule__PhysicalLinkPerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+
+	'maxSupportedBandwidth' 
+
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLinkPerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLinkPerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+(rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1)
+{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__IntermediateNodePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__0__Impl
+	rule__IntermediateNodePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); }
+
+	'IntermediateNodePerfSpec' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__1__Impl
+	rule__IntermediateNodePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__2__Impl
+	rule__IntermediateNodePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); }
+
+	'dataplane' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__3__Impl
+	rule__IntermediateNodePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); }
+(rule__IntermediateNodePerfSpec__DataplaneAssignment_3)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__4__Impl
+	rule__IntermediateNodePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); }
+
+	'controlplane' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__5__Impl
+	rule__IntermediateNodePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); }
+(rule__IntermediateNodePerfSpec__ControlplaneAssignment_5)
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntermediateNodePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__IntermediateNodePerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ControlPlanePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__0__Impl
+	rule__ControlPlanePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+
+	'DataPlanePerfSpec' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__1__Impl
+	rule__ControlPlanePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__2__Impl
+	rule__ControlPlanePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); }
+
+	'processingLatency' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__3__Impl
+	rule__ControlPlanePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); }
+(rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__4__Impl
+	rule__ControlPlanePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); }
+
+	'processingBandwidthReqPS' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__5__Impl
+	rule__ControlPlanePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); }
+(rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__6__Impl
+	rule__ControlPlanePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__7__Impl
+	rule__ControlPlanePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); }
+(rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7)
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ControlPlanePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ControlPlanePerfSpec__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataPlanePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__0__Impl
+	rule__DataPlanePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+
+	'DataPlanePerfSpec' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__1__Impl
+	rule__DataPlanePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__2__Impl
+	rule__DataPlanePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); }
+
+	'forwardingLatency' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__3__Impl
+	rule__DataPlanePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); }
+(rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__4__Impl
+	rule__DataPlanePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); }
+
+	'forwardingBandwidthPPS' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__5__Impl
+	rule__DataPlanePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); }
+(rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__6__Impl
+	rule__DataPlanePerfSpec__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); }
+
+	'forwardingBandwidthBPS' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__7__Impl
+	rule__DataPlanePerfSpec__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); }
+(rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__8__Impl
+	rule__DataPlanePerfSpec__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); }
+
+	'packetProcessingTime' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__9__Impl
+	rule__DataPlanePerfSpec__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); }
+(rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9)
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataPlanePerfSpec__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataPlanePerfSpec__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__0__Impl
+	rule__EndNodePerfSpec__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); }
+
+	'EndNodePerfSpec' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__1__Impl
+	rule__EndNodePerfSpec__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__2__Impl
+	rule__EndNodePerfSpec__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); }
+
+	'softwareLayersDelay' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__3__Impl
+	rule__EndNodePerfSpec__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); }
+(rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__4__Impl
+	rule__EndNodePerfSpec__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); }
+(rule__EndNodePerfSpec__Group_4__0)?
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__5__Impl
+	rule__EndNodePerfSpec__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); }
+(rule__EndNodePerfSpec__Group_5__0)?
+{ after(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_4__0__Impl
+	rule__EndNodePerfSpec__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); }
+
+	'dataplane' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); }
+(rule__EndNodePerfSpec__DataplaneAssignment_4_1)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EndNodePerfSpec__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_5__0__Impl
+	rule__EndNodePerfSpec__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); }
+
+	'controlplane' 
+
+{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndNodePerfSpec__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EndNodePerfSpec__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); }
+(rule__EndNodePerfSpec__ControlplaneAssignment_5_1)
+{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkTraffic__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__0__Impl
+	rule__NetworkTraffic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__1__Impl
+	rule__NetworkTraffic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); }
+
+	'NetworkTraffic' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__2__Impl
+	rule__NetworkTraffic__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__3__Impl
+	rule__NetworkTraffic__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_3()); }
+(rule__NetworkTraffic__Group_3__0)?
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__4__Impl
+	rule__NetworkTraffic__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_4()); }
+(rule__NetworkTraffic__Group_4__0)?
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__0__Impl
+	rule__NetworkTraffic__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); }
+
+	'flows' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__1__Impl
+	rule__NetworkTraffic__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__2__Impl
+	rule__NetworkTraffic__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); }
+(rule__NetworkTraffic__FlowsAssignment_3_2)
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__3__Impl
+	rule__NetworkTraffic__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); }
+(rule__NetworkTraffic__Group_3_3__0)*
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3_3__0__Impl
+	rule__NetworkTraffic__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); }
+(rule__NetworkTraffic__FlowsAssignment_3_3_1)
+{ after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkTraffic__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__0__Impl
+	rule__NetworkTraffic__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__1__Impl
+	rule__NetworkTraffic__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__2__Impl
+	rule__NetworkTraffic__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); }
+(rule__NetworkTraffic__SoftwareAssignment_4_2)
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__3__Impl
+	rule__NetworkTraffic__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); }
+(rule__NetworkTraffic__Group_4_3__0)*
+{ after(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkTraffic__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4_3__0__Impl
+	rule__NetworkTraffic__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkTraffic__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkTraffic__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); }
+(rule__NetworkTraffic__SoftwareAssignment_4_3_1)
+{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkStructure__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__0__Impl
+	rule__NetworkStructure__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); }
+(
+
+)
+{ after(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__1__Impl
+	rule__NetworkStructure__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); }
+
+	'NetworkStructure' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__2__Impl
+	rule__NetworkStructure__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__3__Impl
+	rule__NetworkStructure__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_3()); }
+(rule__NetworkStructure__Group_3__0)?
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__4__Impl
+	rule__NetworkStructure__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_4()); }
+(rule__NetworkStructure__Group_4__0)?
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__0__Impl
+	rule__NetworkStructure__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); }
+
+	'nodes' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__1__Impl
+	rule__NetworkStructure__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__2__Impl
+	rule__NetworkStructure__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); }
+(rule__NetworkStructure__NodesAssignment_3_2)
+{ after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__3__Impl
+	rule__NetworkStructure__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); }
+(rule__NetworkStructure__Group_3_3__0)*
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3_3__0__Impl
+	rule__NetworkStructure__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); }
+(rule__NetworkStructure__NodesAssignment_3_3_1)
+{ after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkStructure__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__0__Impl
+	rule__NetworkStructure__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); }
+
+	'links' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__1__Impl
+	rule__NetworkStructure__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__2__Impl
+	rule__NetworkStructure__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); }
+(rule__NetworkStructure__LinksAssignment_4_2)
+{ after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__3__Impl
+	rule__NetworkStructure__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); }
+(rule__NetworkStructure__Group_4_3__0)*
+{ after(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkStructure__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4_3__0__Impl
+	rule__NetworkStructure__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkStructure__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkStructure__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); }
+(rule__NetworkStructure__LinksAssignment_4_3_1)
+{ after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkConfiguration__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__0__Impl
+	rule__NetworkConfiguration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); }
+
+	'NetworkConfiguration' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__1__Impl
+	rule__NetworkConfiguration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__2__Impl
+	rule__NetworkConfiguration__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); }
+
+	'protocolsAndStacks' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__3__Impl
+	rule__NetworkConfiguration__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); }
+(rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3)
+{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__4__Impl
+	rule__NetworkConfiguration__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); }
+
+	'routes' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__5__Impl
+	rule__NetworkConfiguration__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); }
+(rule__NetworkConfiguration__RoutesAssignment_5)
+{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkConfiguration__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkConfiguration__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ExperimentParam__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__0__Impl
+	rule__ExperimentParam__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); }
+
+	'ExperimentParam' 
+
+{ after(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__1__Impl
+	rule__ExperimentParam__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); }
+(rule__ExperimentParam__NameAssignment_1)
+{ after(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__2__Impl
+	rule__ExperimentParam__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__3__Impl
+	rule__ExperimentParam__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); }
+
+	'value' 
+
+{ after(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__4__Impl
+	rule__ExperimentParam__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); }
+(rule__ExperimentParam__ValueAssignment_4)
+{ after(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExperimentParam__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ExperimentParam__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__0__Impl
+	rule__SoftwareComponent__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); }
+
+	'SoftwareComponent' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__1__Impl
+	rule__SoftwareComponent__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); }
+(rule__SoftwareComponent__IdAssignment_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__2__Impl
+	rule__SoftwareComponent__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__3__Impl
+	rule__SoftwareComponent__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__4__Impl
+	rule__SoftwareComponent__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); }
+(rule__SoftwareComponent__NameAssignment_4)
+{ after(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__5__Impl
+	rule__SoftwareComponent__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_5()); }
+(rule__SoftwareComponent__Group_5__0)?
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__6__Impl
+	rule__SoftwareComponent__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); }
+
+	'deployedOn' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__7__Impl
+	rule__SoftwareComponent__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); }
+(rule__SoftwareComponent__DeployedOnAssignment_7)
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__8__Impl
+	rule__SoftwareComponent__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_8()); }
+(rule__SoftwareComponent__Group_8__0)?
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__0__Impl
+	rule__SoftwareComponent__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__1__Impl
+	rule__SoftwareComponent__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__2__Impl
+	rule__SoftwareComponent__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__SoftwareComponent__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__3__Impl
+	rule__SoftwareComponent__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); }
+(rule__SoftwareComponent__Group_5_3__0)*
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5_3__0__Impl
+	rule__SoftwareComponent__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SoftwareComponent__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__0__Impl
+	rule__SoftwareComponent__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); }
+
+	'trafficSources' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__1__Impl
+	rule__SoftwareComponent__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__2__Impl
+	rule__SoftwareComponent__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); }
+(rule__SoftwareComponent__TrafficSourcesAssignment_8_2)
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__3__Impl
+	rule__SoftwareComponent__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); }
+(rule__SoftwareComponent__Group_8_3__0)*
+{ after(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SoftwareComponent__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8_3__0__Impl
+	rule__SoftwareComponent__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SoftwareComponent__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SoftwareComponent__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); }
+(rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1)
+{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EntityAddress__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__0__Impl
+	rule__EntityAddress__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); }
+(
+
+)
+{ after(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__1__Impl
+	rule__EntityAddress__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); }
+
+	'EntityAddress' 
+
+{ after(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__2__Impl
+	rule__EntityAddress__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__3__Impl
+	rule__EntityAddress__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup_3()); }
+(rule__EntityAddress__Group_3__0)?
+{ after(grammarAccess.getEntityAddressAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__4__Impl
+	rule__EntityAddress__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getGroup_4()); }
+(rule__EntityAddress__Group_4__0)?
+{ after(grammarAccess.getEntityAddressAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EntityAddress__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_3__0__Impl
+	rule__EntityAddress__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); }
+
+	'address' 
+
+{ after(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); }
+(rule__EntityAddress__AddressAssignment_3_1)
+{ after(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EntityAddress__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_4__0__Impl
+	rule__EntityAddress__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); }
+
+	'addressGivenBy' 
+
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EntityAddress__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EntityAddress__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); }
+(rule__EntityAddress__AddressGivenByAssignment_4_1)
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__0__Impl
+	rule__ONOFFFlow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); }
+(rule__ONOFFFlow__StartStateAssignment_0)
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__1__Impl
+	rule__ONOFFFlow__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); }
+
+	'ONOFFFlow' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__2__Impl
+	rule__ONOFFFlow__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); }
+(rule__ONOFFFlow__IdAssignment_2)
+{ after(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__3__Impl
+	rule__ONOFFFlow__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__4__Impl
+	rule__ONOFFFlow__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); }
+
+	'name' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__5__Impl
+	rule__ONOFFFlow__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); }
+(rule__ONOFFFlow__NameAssignment_5)
+{ after(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__6__Impl
+	rule__ONOFFFlow__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_6()); }
+(rule__ONOFFFlow__Group_6__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__7__Impl
+	rule__ONOFFFlow__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_7()); }
+(rule__ONOFFFlow__Group_7__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__8__Impl
+	rule__ONOFFFlow__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_8()); }
+(rule__ONOFFFlow__Group_8__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__9__Impl
+	rule__ONOFFFlow__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_9()); }
+(rule__ONOFFFlow__Group_9__0)?
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__10__Impl
+	rule__ONOFFFlow__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); }
+
+	'ONstateIAT' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__11__Impl
+	rule__ONOFFFlow__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); }
+(rule__ONOFFFlow__ONstateIATAssignment_11)
+{ after(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__12__Impl
+	rule__ONOFFFlow__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); }
+
+	'ONstateDuration' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__13__Impl
+	rule__ONOFFFlow__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); }
+(rule__ONOFFFlow__ONstateDurationAssignment_13)
+{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__14__Impl
+	rule__ONOFFFlow__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); }
+
+	'OFFstateDuration' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__15__Impl
+	rule__ONOFFFlow__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); }
+(rule__ONOFFFlow__OFFstateDurationAssignment_15)
+{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__16__Impl
+	rule__ONOFFFlow__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); }
+
+	'packetLength' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__17__Impl
+	rule__ONOFFFlow__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); }
+(rule__ONOFFFlow__PacketLengthAssignment_17)
+{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group__18__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__0__Impl
+	rule__ONOFFFlow__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__1__Impl
+	rule__ONOFFFlow__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__2__Impl
+	rule__ONOFFFlow__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); }
+(rule__ONOFFFlow__AlternativeNamesAssignment_6_2)
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__3__Impl
+	rule__ONOFFFlow__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); }
+(rule__ONOFFFlow__Group_6_3__0)*
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6_3__0__Impl
+	rule__ONOFFFlow__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); }
+(rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1)
+{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_7__0__Impl
+	rule__ONOFFFlow__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); }
+
+	'destinationSoftwareComponent' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); }
+(rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_8__0__Impl
+	rule__ONOFFFlow__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); }
+
+	'sourceSoftwareComponent' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); }
+(rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1)
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ONOFFFlow__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__0__Impl
+	rule__ONOFFFlow__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); }
+
+	'destinationAddresses' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__1__Impl
+	rule__ONOFFFlow__Group_9__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__2__Impl
+	rule__ONOFFFlow__Group_9__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); }
+(rule__ONOFFFlow__DestinationAddressesAssignment_9_2)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__3__Impl
+	rule__ONOFFFlow__Group_9__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); }
+(rule__ONOFFFlow__Group_9_3__0)*
+{ after(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ONOFFFlow__Group_9_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9_3__0__Impl
+	rule__ONOFFFlow__Group_9_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ONOFFFlow__Group_9_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ONOFFFlow__Group_9_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__Group_9_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); }
+(rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__0__Impl
+	rule__GenericFlow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); }
+
+	'GenericFlow' 
+
+{ after(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__1__Impl
+	rule__GenericFlow__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); }
+(rule__GenericFlow__IdAssignment_1)
+{ after(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__2__Impl
+	rule__GenericFlow__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__3__Impl
+	rule__GenericFlow__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__4__Impl
+	rule__GenericFlow__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); }
+(rule__GenericFlow__NameAssignment_4)
+{ after(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__5__Impl
+	rule__GenericFlow__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_5()); }
+(rule__GenericFlow__Group_5__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__6__Impl
+	rule__GenericFlow__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_6()); }
+(rule__GenericFlow__Group_6__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__7__Impl
+	rule__GenericFlow__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_7()); }
+(rule__GenericFlow__Group_7__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__8__Impl
+	rule__GenericFlow__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_8()); }
+(rule__GenericFlow__Group_8__0)?
+{ after(grammarAccess.getGenericFlowAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__9__Impl
+	rule__GenericFlow__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); }
+
+	'dataSize' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__10__Impl
+	rule__GenericFlow__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); }
+(rule__GenericFlow__DataSizeAssignment_10)
+{ after(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__0__Impl
+	rule__GenericFlow__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__1__Impl
+	rule__GenericFlow__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__2__Impl
+	rule__GenericFlow__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__GenericFlow__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__3__Impl
+	rule__GenericFlow__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_5_3()); }
+(rule__GenericFlow__Group_5_3__0)*
+{ after(grammarAccess.getGenericFlowAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5_3__0__Impl
+	rule__GenericFlow__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__GenericFlow__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_6__0__Impl
+	rule__GenericFlow__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); }
+
+	'destinationSoftwareComponent' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); }
+(rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_7__0__Impl
+	rule__GenericFlow__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); }
+
+	'sourceSoftwareComponent' 
+
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); }
+(rule__GenericFlow__SourceSoftwareComponentAssignment_7_1)
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericFlow__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__0__Impl
+	rule__GenericFlow__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); }
+
+	'destinationAddresses' 
+
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__1__Impl
+	rule__GenericFlow__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__2__Impl
+	rule__GenericFlow__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); }
+(rule__GenericFlow__DestinationAddressesAssignment_8_2)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__3__Impl
+	rule__GenericFlow__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getGroup_8_3()); }
+(rule__GenericFlow__Group_8_3__0)*
+{ after(grammarAccess.getGenericFlowAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericFlow__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8_3__0__Impl
+	rule__GenericFlow__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericFlow__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericFlow__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); }
+(rule__GenericFlow__DestinationAddressesAssignment_8_3_1)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkProtocol__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__0__Impl
+	rule__NetworkProtocol__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); }
+(rule__NetworkProtocol__DeliveryGuaranteedAssignment_0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__1__Impl
+	rule__NetworkProtocol__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); }
+
+	'NetworkProtocol' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__2__Impl
+	rule__NetworkProtocol__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); }
+(rule__NetworkProtocol__NameAssignment_2)
+{ after(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__3__Impl
+	rule__NetworkProtocol__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__4__Impl
+	rule__NetworkProtocol__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_4()); }
+(rule__NetworkProtocol__Group_4__0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__5__Impl
+	rule__NetworkProtocol__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); }
+
+	'mtu' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__6__Impl
+	rule__NetworkProtocol__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); }
+(rule__NetworkProtocol__MtuAssignment_6)
+{ after(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__7__Impl
+	rule__NetworkProtocol__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); }
+
+	'headersLength' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__8__Impl
+	rule__NetworkProtocol__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); }
+(rule__NetworkProtocol__HeadersLengthAssignment_8)
+{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__9__Impl
+	rule__NetworkProtocol__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); }
+
+	'dataUnitLength' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__10__Impl
+	rule__NetworkProtocol__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); }
+(rule__NetworkProtocol__DataUnitLengthAssignment_10)
+{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__11__Impl
+	rule__NetworkProtocol__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_11()); }
+(rule__NetworkProtocol__Group_11__0)?
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkProtocol__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__0__Impl
+	rule__NetworkProtocol__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__1__Impl
+	rule__NetworkProtocol__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__2__Impl
+	rule__NetworkProtocol__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); }
+(rule__NetworkProtocol__AlternativeNamesAssignment_4_2)
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__3__Impl
+	rule__NetworkProtocol__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); }
+(rule__NetworkProtocol__Group_4_3__0)*
+{ after(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__NetworkProtocol__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4_3__0__Impl
+	rule__NetworkProtocol__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); }
+(rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1)
+{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__NetworkProtocol__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_11__0__Impl
+	rule__NetworkProtocol__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); }
+
+	'connectionless' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__NetworkProtocol__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__NetworkProtocol__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); }
+(rule__NetworkProtocol__ConnectionlessAssignment_11_1)
+{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EInt__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__0__Impl
+	rule__EInt__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EInt__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EInt__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EInt__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConstantDoubleVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__0__Impl
+	rule__ConstantDoubleVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); }
+
+	'ConstantDoubleVariable' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__1__Impl
+	rule__ConstantDoubleVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__2__Impl
+	rule__ConstantDoubleVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); }
+
+	'value' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__3__Impl
+	rule__ConstantDoubleVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); }
+(rule__ConstantDoubleVariable__ValueAssignment_3)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__4__Impl
+	rule__ConstantDoubleVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); }
+(rule__ConstantDoubleVariable__Group_4__0)?
+{ after(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConstantDoubleVariable__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group_4__0__Impl
+	rule__ConstantDoubleVariable__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantDoubleVariable__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantDoubleVariable__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); }
+(rule__ConstantDoubleVariable__UnitAssignment_4_1)
+{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ConstantLongVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__0__Impl
+	rule__ConstantLongVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); }
+
+	'ConstantLongVariable' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__1__Impl
+	rule__ConstantLongVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__2__Impl
+	rule__ConstantLongVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); }
+
+	'value' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__3__Impl
+	rule__ConstantLongVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); }
+(rule__ConstantLongVariable__ValueAssignment_3)
+{ after(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__4__Impl
+	rule__ConstantLongVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getGroup_4()); }
+(rule__ConstantLongVariable__Group_4__0)?
+{ after(grammarAccess.getConstantLongVariableAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ConstantLongVariable__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group_4__0__Impl
+	rule__ConstantLongVariable__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ConstantLongVariable__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ConstantLongVariable__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); }
+(rule__ConstantLongVariable__UnitAssignment_4_1)
+{ after(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RandomVariable__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__0__Impl
+	rule__RandomVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); }
+
+	'RandomVariable' 
+
+{ after(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__1__Impl
+	rule__RandomVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__2__Impl
+	rule__RandomVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getGroup_2()); }
+(rule__RandomVariable__Group_2__0)?
+{ after(grammarAccess.getRandomVariableAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__3__Impl
+	rule__RandomVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); }
+
+	'cdf' 
+
+{ after(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__4__Impl
+	rule__RandomVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); }
+(rule__RandomVariable__CdfAssignment_4)
+{ after(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RandomVariable__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group_2__0__Impl
+	rule__RandomVariable__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RandomVariable__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RandomVariable__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); }
+(rule__RandomVariable__UnitAssignment_2_1)
+{ after(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ContinuousFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__0__Impl
+	rule__ContinuousFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); }
+
+	'ContinuousFunction' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__1__Impl
+	rule__ContinuousFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__2__Impl
+	rule__ContinuousFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); }
+
+	'numArgs' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__3__Impl
+	rule__ContinuousFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); }
+(rule__ContinuousFunction__NumArgsAssignment_3)
+{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__4__Impl
+	rule__ContinuousFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); }
+
+	'equation' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__5__Impl
+	rule__ContinuousFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); }
+(rule__ContinuousFunction__EquationAssignment_5)
+{ after(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__6__Impl
+	rule__ContinuousFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getGroup_6()); }
+(rule__ContinuousFunction__Group_6__0)?
+{ after(grammarAccess.getContinuousFunctionAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ContinuousFunction__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group_6__0__Impl
+	rule__ContinuousFunction__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ContinuousFunction__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ContinuousFunction__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); }
+(rule__ContinuousFunction__UnitAssignment_6_1)
+{ after(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DiscreteFunction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__0__Impl
+	rule__DiscreteFunction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); }
+
+	'DiscreteFunction' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__1__Impl
+	rule__DiscreteFunction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__2__Impl
+	rule__DiscreteFunction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); }
+
+	'numArgs' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__3__Impl
+	rule__DiscreteFunction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); }
+(rule__DiscreteFunction__NumArgsAssignment_3)
+{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__4__Impl
+	rule__DiscreteFunction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); }
+(rule__DiscreteFunction__Group_4__0)?
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__5__Impl
+	rule__DiscreteFunction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); }
+
+	'x' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__6__Impl
+	rule__DiscreteFunction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); }
+
+	'{' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__7__Impl
+	rule__DiscreteFunction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); }
+(rule__DiscreteFunction__XAssignment_7)
+{ after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__8__Impl
+	rule__DiscreteFunction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); }
+(rule__DiscreteFunction__Group_8__0)*
+{ after(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__9__Impl
+	rule__DiscreteFunction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__10__Impl
+	rule__DiscreteFunction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); }
+
+	'y' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__11__Impl
+	rule__DiscreteFunction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); }
+(rule__DiscreteFunction__YAssignment_11)
+{ after(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DiscreteFunction__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_4__0__Impl
+	rule__DiscreteFunction__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); }
+
+	'unit' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); }
+(rule__DiscreteFunction__UnitAssignment_4_1)
+{ after(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DiscreteFunction__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_8__0__Impl
+	rule__DiscreteFunction__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DiscreteFunction__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DiscreteFunction__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); }
+(rule__DiscreteFunction__XAssignment_8_1)
+{ after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EFloat__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__0__Impl
+	rule__EFloat__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__1__Impl
+	rule__EFloat__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__2__Impl
+	rule__EFloat__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__3__Impl
+	rule__EFloat__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getGroup_4()); }
+(rule__EFloat__Group_4__0)?
+{ after(grammarAccess.getEFloatAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EFloat__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__0__Impl
+	rule__EFloat__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getAlternatives_4_0()); }
+(rule__EFloat__Alternatives_4_0)
+{ after(grammarAccess.getEFloatAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__1__Impl
+	rule__EFloat__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EFloat__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EFloat__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EFloat__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__SpeedUnit__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__0__Impl
+	rule__SpeedUnit__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); }
+
+	'SpeedUnit' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__1__Impl
+	rule__SpeedUnit__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__2__Impl
+	rule__SpeedUnit__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); }
+
+	'prefix' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__3__Impl
+	rule__SpeedUnit__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); }
+(rule__SpeedUnit__PrefixAssignment_3)
+{ after(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__4__Impl
+	rule__SpeedUnit__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); }
+
+	'value' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__5__Impl
+	rule__SpeedUnit__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); }
+(rule__SpeedUnit__ValueAssignment_5)
+{ after(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__6__Impl
+	rule__SpeedUnit__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); }
+
+	'unit' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__7__Impl
+	rule__SpeedUnit__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); }
+(rule__SpeedUnit__UnitAssignment_7)
+{ after(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SpeedUnit__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SpeedUnit__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__0__Impl
+	rule__EDouble__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__1__Impl
+	rule__EDouble__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+(	RULE_INT)?
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__2__Impl
+	rule__EDouble__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+
+	'.' 
+
+{ after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__3__Impl
+	rule__EDouble__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getGroup_4()); }
+(rule__EDouble__Group_4__0)?
+{ after(grammarAccess.getEDoubleAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__EDouble__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__0__Impl
+	rule__EDouble__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+(rule__EDouble__Alternatives_4_0)
+{ after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__1__Impl
+	rule__EDouble__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EDouble__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EDouble__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EDouble__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+	RULE_INT
+{ after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ELong__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ELong__Group__0__Impl
+	rule__ELong__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ELong__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ELong__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ELong__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ELong__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__DataSeries__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__0__Impl
+	rule__DataSeries__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); }
+(
+
+)
+{ after(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__1__Impl
+	rule__DataSeries__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); }
+
+	'DataSeries' 
+
+{ after(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__2__Impl
+	rule__DataSeries__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__3__Impl
+	rule__DataSeries__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup_3()); }
+(rule__DataSeries__Group_3__0)?
+{ after(grammarAccess.getDataSeriesAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataSeries__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__0__Impl
+	rule__DataSeries__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); }
+
+	'data' 
+
+{ after(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__1__Impl
+	rule__DataSeries__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__2__Impl
+	rule__DataSeries__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); }
+(rule__DataSeries__DataAssignment_3_2)
+{ after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__3__Impl
+	rule__DataSeries__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getGroup_3_3()); }
+(rule__DataSeries__Group_3_3__0)*
+{ after(grammarAccess.getDataSeriesAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__DataSeries__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3_3__0__Impl
+	rule__DataSeries__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DataSeries__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__DataSeries__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); }
+(rule__DataSeries__DataAssignment_3_3_1)
+{ after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__0__Impl
+	rule__TrafficSource__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); }
+
+	'TrafficSource' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__1__Impl
+	rule__TrafficSource__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); }
+(rule__TrafficSource__IdAssignment_1)
+{ after(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__2__Impl
+	rule__TrafficSource__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__3__Impl
+	rule__TrafficSource__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__4__Impl
+	rule__TrafficSource__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); }
+(rule__TrafficSource__NameAssignment_4)
+{ after(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__5__Impl
+	rule__TrafficSource__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_5()); }
+(rule__TrafficSource__Group_5__0)?
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__6__Impl
+	rule__TrafficSource__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_6()); }
+(rule__TrafficSource__Group_6__0)?
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__7__Impl
+	rule__TrafficSource__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); }
+
+	'workload' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__8__Impl
+	rule__TrafficSource__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__9__Impl
+	rule__TrafficSource__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); }
+(rule__TrafficSource__WorkloadAssignment_9)
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__10__Impl
+	rule__TrafficSource__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_10()); }
+(rule__TrafficSource__Group_10__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__11__Impl
+	rule__TrafficSource__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__0__Impl
+	rule__TrafficSource__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__1__Impl
+	rule__TrafficSource__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__2__Impl
+	rule__TrafficSource__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__TrafficSource__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__3__Impl
+	rule__TrafficSource__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); }
+(rule__TrafficSource__Group_5_3__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5_3__0__Impl
+	rule__TrafficSource__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__TrafficSource__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__0__Impl
+	rule__TrafficSource__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__1__Impl
+	rule__TrafficSource__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__2__Impl
+	rule__TrafficSource__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); }
+(rule__TrafficSource__AddressesAssignment_6_2)
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__3__Impl
+	rule__TrafficSource__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); }
+(rule__TrafficSource__Group_6_3__0)*
+{ after(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__TrafficSource__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6_3__0__Impl
+	rule__TrafficSource__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); }
+(rule__TrafficSource__AddressesAssignment_6_3_1)
+{ after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TrafficSource__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_10__0__Impl
+	rule__TrafficSource__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); }
+
+	',' 
+
+{ after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TrafficSource__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TrafficSource__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); }
+(rule__TrafficSource__WorkloadAssignment_10_1)
+{ after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__GenericWorkload__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__0__Impl
+	rule__GenericWorkload__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); }
+(
+
+)
+{ after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__1__Impl
+	rule__GenericWorkload__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); }
+
+	'GenericWorkload' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__2__Impl
+	rule__GenericWorkload__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__3__Impl
+	rule__GenericWorkload__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup_3()); }
+(rule__GenericWorkload__Group_3__0)?
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericWorkload__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__0__Impl
+	rule__GenericWorkload__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); }
+
+	'actions' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__1__Impl
+	rule__GenericWorkload__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__2__Impl
+	rule__GenericWorkload__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); }
+(rule__GenericWorkload__ActionsAssignment_3_2)
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__3__Impl
+	rule__GenericWorkload__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); }
+(rule__GenericWorkload__Group_3_3__0)*
+{ after(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__GenericWorkload__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3_3__0__Impl
+	rule__GenericWorkload__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GenericWorkload__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__GenericWorkload__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); }
+(rule__GenericWorkload__ActionsAssignment_3_3_1)
+{ after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__BranchAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__0__Impl
+	rule__BranchAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+
+	'BranchAction' 
+
+{ after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__1__Impl
+	rule__BranchAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__2__Impl
+	rule__BranchAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getBranchActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__3__Impl
+	rule__BranchAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__4__Impl
+	rule__BranchAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAssignment_4()); }
+(rule__BranchAction__InternAssignment_4)
+{ after(grammarAccess.getBranchActionAccess().getInternAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__5__Impl
+	rule__BranchAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getGroup_5()); }
+(rule__BranchAction__Group_5__0)*
+{ after(grammarAccess.getBranchActionAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__6__Impl
+	rule__BranchAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__BranchAction__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_5__0__Impl
+	rule__BranchAction__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); }
+
+	',' 
+
+{ after(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BranchAction__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__BranchAction__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); }
+(rule__BranchAction__InternAssignment_5_1)
+{ after(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LoopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__0__Impl
+	rule__LoopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+
+	'LoopAction' 
+
+{ after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__1__Impl
+	rule__LoopAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__2__Impl
+	rule__LoopAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getLoopActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__3__Impl
+	rule__LoopAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternAssignment_3()); }
+(rule__LoopAction__InternAssignment_3)
+{ after(grammarAccess.getLoopActionAccess().getInternAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__4__Impl
+	rule__LoopAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); }
+
+	'numIterations' 
+
+{ after(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__5__Impl
+	rule__LoopAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); }
+(rule__LoopAction__NumIterationsAssignment_5)
+{ after(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__LoopAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__LoopAction__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SequenceAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__0__Impl
+	rule__SequenceAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); }
+
+	'SequenceAction' 
+
+{ after(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__1__Impl
+	rule__SequenceAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__2__Impl
+	rule__SequenceAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); }
+
+	'intern' 
+
+{ after(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__3__Impl
+	rule__SequenceAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__4__Impl
+	rule__SequenceAction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); }
+(rule__SequenceAction__InternAssignment_4)
+{ after(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__5__Impl
+	rule__SequenceAction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getGroup_5()); }
+(rule__SequenceAction__Group_5__0)*
+{ after(grammarAccess.getSequenceActionAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__6__Impl
+	rule__SequenceAction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__SequenceAction__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group_5__0__Impl
+	rule__SequenceAction__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); }
+
+	',' 
+
+{ after(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceAction__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SequenceAction__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); }
+(rule__SequenceAction__InternAssignment_5_1)
+{ after(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StartAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__0__Impl
+	rule__StartAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStartActionAccess().getStartActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StartAction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+
+	'StartAction' 
+
+{ after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__StopAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__0__Impl
+	rule__StopAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStopActionAccess().getStopActionAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StopAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__StopAction__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StopAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+
+	'StopAction' 
+
+{ after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__TransmitAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__0__Impl
+	rule__TransmitAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); }
+
+	'TransmitAction' 
+
+{ after(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__1__Impl
+	rule__TransmitAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__2__Impl
+	rule__TransmitAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); }
+
+	'flow' 
+
+{ after(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__3__Impl
+	rule__TransmitAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); }
+(rule__TransmitAction__FlowAssignment_3)
+{ after(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TransmitAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__TransmitAction__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__WaitAction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__0__Impl
+	rule__WaitAction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); }
+
+	'WaitAction' 
+
+{ after(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__1__Impl
+	rule__WaitAction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__2__Impl
+	rule__WaitAction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); }
+
+	'waitTime' 
+
+{ after(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__3__Impl
+	rule__WaitAction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); }
+(rule__WaitAction__WaitTimeAssignment_3)
+{ after(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__WaitAction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__WaitAction__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__0__Impl
+	rule__VirtualNode__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); }
+
+	'VirtualNode' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__1__Impl
+	rule__VirtualNode__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); }
+(rule__VirtualNode__IdAssignment_1)
+{ after(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__2__Impl
+	rule__VirtualNode__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__3__Impl
+	rule__VirtualNode__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__4__Impl
+	rule__VirtualNode__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); }
+(rule__VirtualNode__NameAssignment_4)
+{ after(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__5__Impl
+	rule__VirtualNode__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_5()); }
+(rule__VirtualNode__Group_5__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__6__Impl
+	rule__VirtualNode__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_6()); }
+(rule__VirtualNode__Group_6__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__7__Impl
+	rule__VirtualNode__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); }
+
+	'hostedOn' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__8__Impl
+	rule__VirtualNode__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); }
+(rule__VirtualNode__HostedOnAssignment_8)
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__9__Impl
+	rule__VirtualNode__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__10__Impl
+	rule__VirtualNode__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); }
+(rule__VirtualNode__PerformanceAssignment_10)
+{ after(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__11__Impl
+	rule__VirtualNode__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_11()); }
+(rule__VirtualNode__Group_11__0)?
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__0__Impl
+	rule__VirtualNode__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__1__Impl
+	rule__VirtualNode__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__2__Impl
+	rule__VirtualNode__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualNode__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__3__Impl
+	rule__VirtualNode__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); }
+(rule__VirtualNode__Group_5_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5_3__0__Impl
+	rule__VirtualNode__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualNode__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNode__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__0__Impl
+	rule__VirtualNode__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__1__Impl
+	rule__VirtualNode__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__2__Impl
+	rule__VirtualNode__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); }
+(rule__VirtualNode__SoftwareAssignment_6_2)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__3__Impl
+	rule__VirtualNode__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); }
+(rule__VirtualNode__Group_6_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); }
+
+	')' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6_3__0__Impl
+	rule__VirtualNode__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); }
+(rule__VirtualNode__SoftwareAssignment_6_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNode__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__0__Impl
+	rule__VirtualNode__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); }
+
+	'interfaces' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__1__Impl
+	rule__VirtualNode__Group_11__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__2__Impl
+	rule__VirtualNode__Group_11__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); }
+(rule__VirtualNode__InterfacesAssignment_11_2)
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__3__Impl
+	rule__VirtualNode__Group_11__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); }
+(rule__VirtualNode__Group_11_3__0)*
+{ after(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNode__Group_11_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11_3__0__Impl
+	rule__VirtualNode__Group_11_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNode__Group_11_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNode__Group_11_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__Group_11_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); }
+(rule__VirtualNode__InterfacesAssignment_11_3_1)
+{ after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__0__Impl
+	rule__PhysicalNode__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); }
+
+	'PhysicalNode' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__1__Impl
+	rule__PhysicalNode__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); }
+(rule__PhysicalNode__IdAssignment_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__2__Impl
+	rule__PhysicalNode__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__3__Impl
+	rule__PhysicalNode__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__4__Impl
+	rule__PhysicalNode__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); }
+(rule__PhysicalNode__NameAssignment_4)
+{ after(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__5__Impl
+	rule__PhysicalNode__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_5()); }
+(rule__PhysicalNode__Group_5__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__6__Impl
+	rule__PhysicalNode__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_6()); }
+(rule__PhysicalNode__Group_6__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__7__Impl
+	rule__PhysicalNode__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_7()); }
+(rule__PhysicalNode__Group_7__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__8__Impl
+	rule__PhysicalNode__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__9__Impl
+	rule__PhysicalNode__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); }
+(rule__PhysicalNode__PerformanceAssignment_9)
+{ after(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__10__Impl
+	rule__PhysicalNode__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_10()); }
+(rule__PhysicalNode__Group_10__0)?
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__0__Impl
+	rule__PhysicalNode__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__1__Impl
+	rule__PhysicalNode__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__2__Impl
+	rule__PhysicalNode__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalNode__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__3__Impl
+	rule__PhysicalNode__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); }
+(rule__PhysicalNode__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5_3__0__Impl
+	rule__PhysicalNode__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalNode__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__0__Impl
+	rule__PhysicalNode__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); }
+
+	'software' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__1__Impl
+	rule__PhysicalNode__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__2__Impl
+	rule__PhysicalNode__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); }
+(rule__PhysicalNode__SoftwareAssignment_6_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__3__Impl
+	rule__PhysicalNode__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); }
+(rule__PhysicalNode__Group_6_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6_3__0__Impl
+	rule__PhysicalNode__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); }
+(rule__PhysicalNode__SoftwareAssignment_6_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__0__Impl
+	rule__PhysicalNode__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); }
+
+	'hosts' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__1__Impl
+	rule__PhysicalNode__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__2__Impl
+	rule__PhysicalNode__Group_7__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); }
+(rule__PhysicalNode__HostsAssignment_7_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__3__Impl
+	rule__PhysicalNode__Group_7__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); }
+(rule__PhysicalNode__Group_7_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_7_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7_3__0__Impl
+	rule__PhysicalNode__Group_7_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_7_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_7_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_7_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); }
+(rule__PhysicalNode__HostsAssignment_7_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNode__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__0__Impl
+	rule__PhysicalNode__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); }
+
+	'interfaces' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__1__Impl
+	rule__PhysicalNode__Group_10__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__2__Impl
+	rule__PhysicalNode__Group_10__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); }
+(rule__PhysicalNode__InterfacesAssignment_10_2)
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__3__Impl
+	rule__PhysicalNode__Group_10__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); }
+(rule__PhysicalNode__Group_10_3__0)*
+{ after(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNode__Group_10_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10_3__0__Impl
+	rule__PhysicalNode__Group_10_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNode__Group_10_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNode__Group_10_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__Group_10_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); }
+(rule__PhysicalNode__InterfacesAssignment_10_3_1)
+{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLink__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__0__Impl
+	rule__PhysicalLink__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); }
+
+	'PhysicalLink' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__1__Impl
+	rule__PhysicalLink__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); }
+(rule__PhysicalLink__IdAssignment_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__2__Impl
+	rule__PhysicalLink__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__3__Impl
+	rule__PhysicalLink__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__4__Impl
+	rule__PhysicalLink__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); }
+(rule__PhysicalLink__NameAssignment_4)
+{ after(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__5__Impl
+	rule__PhysicalLink__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_5()); }
+(rule__PhysicalLink__Group_5__0)?
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__6__Impl
+	rule__PhysicalLink__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); }
+
+	'connects' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__7__Impl
+	rule__PhysicalLink__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); }
+
+	'(' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__8__Impl
+	rule__PhysicalLink__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); }
+(rule__PhysicalLink__ConnectsAssignment_8)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__9__Impl
+	rule__PhysicalLink__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_9()); }
+(rule__PhysicalLink__Group_9__0)*
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__10__Impl
+	rule__PhysicalLink__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__11__Impl
+	rule__PhysicalLink__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__12__Impl
+	rule__PhysicalLink__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); }
+(rule__PhysicalLink__PerformanceAssignment_12)
+{ after(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLink__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__0__Impl
+	rule__PhysicalLink__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__1__Impl
+	rule__PhysicalLink__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__2__Impl
+	rule__PhysicalLink__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalLink__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__3__Impl
+	rule__PhysicalLink__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); }
+(rule__PhysicalLink__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalLink__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5_3__0__Impl
+	rule__PhysicalLink__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalLink__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalLink__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_9__0__Impl
+	rule__PhysicalLink__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalLink__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalLink__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); }
+(rule__PhysicalLink__ConnectsAssignment_9_1)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualLink__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__0__Impl
+	rule__VirtualLink__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); }
+
+	'VirtualLink' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__1__Impl
+	rule__VirtualLink__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); }
+(rule__VirtualLink__IdAssignment_1)
+{ after(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__2__Impl
+	rule__VirtualLink__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__3__Impl
+	rule__VirtualLink__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__4__Impl
+	rule__VirtualLink__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); }
+(rule__VirtualLink__NameAssignment_4)
+{ after(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__5__Impl
+	rule__VirtualLink__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_5()); }
+(rule__VirtualLink__Group_5__0)?
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__6__Impl
+	rule__VirtualLink__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); }
+
+	'connects' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__7__Impl
+	rule__VirtualLink__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); }
+
+	'(' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__8__Impl
+	rule__VirtualLink__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); }
+(rule__VirtualLink__ConnectsAssignment_8)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__9__Impl
+	rule__VirtualLink__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_9()); }
+(rule__VirtualLink__Group_9__0)*
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__10__Impl
+	rule__VirtualLink__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); }
+
+	')' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__11__Impl
+	rule__VirtualLink__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__12__Impl
+	rule__VirtualLink__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); }
+(rule__VirtualLink__PerformanceAssignment_12)
+{ after(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLink__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__0__Impl
+	rule__VirtualLink__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__1__Impl
+	rule__VirtualLink__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__2__Impl
+	rule__VirtualLink__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualLink__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__3__Impl
+	rule__VirtualLink__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); }
+(rule__VirtualLink__Group_5_3__0)*
+{ after(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualLink__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5_3__0__Impl
+	rule__VirtualLink__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualLink__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualLink__Group_9__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_9__0__Impl
+	rule__VirtualLink__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_9__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualLink__Group_9__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualLink__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__Group_9__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); }
+(rule__VirtualLink__ConnectsAssignment_9_1)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolsRepository__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__0__Impl
+	rule__ProtocolsRepository__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); }
+
+	'ProtocolsRepository' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__1__Impl
+	rule__ProtocolsRepository__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__2__Impl
+	rule__ProtocolsRepository__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); }
+(rule__ProtocolsRepository__Group_2__0)?
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__3__Impl
+	rule__ProtocolsRepository__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); }
+
+	'protocols' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__4__Impl
+	rule__ProtocolsRepository__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__5__Impl
+	rule__ProtocolsRepository__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); }
+(rule__ProtocolsRepository__ProtocolsAssignment_5)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__6__Impl
+	rule__ProtocolsRepository__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); }
+(rule__ProtocolsRepository__Group_6__0)*
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__7__Impl
+	rule__ProtocolsRepository__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__0__Impl
+	rule__ProtocolsRepository__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); }
+
+	'stacks' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__1__Impl
+	rule__ProtocolsRepository__Group_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__2__Impl
+	rule__ProtocolsRepository__Group_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); }
+(rule__ProtocolsRepository__StacksAssignment_2_2)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__3__Impl
+	rule__ProtocolsRepository__Group_2__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); }
+(rule__ProtocolsRepository__Group_2_3__0)*
+{ after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_2_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2_3__0__Impl
+	rule__ProtocolsRepository__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_2_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_2_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_2_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); }
+(rule__ProtocolsRepository__StacksAssignment_2_3_1)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolsRepository__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_6__0__Impl
+	rule__ProtocolsRepository__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolsRepository__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolsRepository__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); }
+(rule__ProtocolsRepository__ProtocolsAssignment_6_1)
+{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__0__Impl
+	rule__RoutesRepository__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); }
+(
+
+)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__1__Impl
+	rule__RoutesRepository__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); }
+
+	'RoutesRepository' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__2__Impl
+	rule__RoutesRepository__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__3__Impl
+	rule__RoutesRepository__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); }
+(rule__RoutesRepository__Group_3__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__4__Impl
+	rule__RoutesRepository__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); }
+(rule__RoutesRepository__Group_4__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__5__Impl
+	rule__RoutesRepository__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); }
+(rule__RoutesRepository__Group_5__0)?
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__0__Impl
+	rule__RoutesRepository__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); }
+
+	'routes' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__1__Impl
+	rule__RoutesRepository__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__2__Impl
+	rule__RoutesRepository__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); }
+(rule__RoutesRepository__RoutesAssignment_3_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__3__Impl
+	rule__RoutesRepository__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); }
+(rule__RoutesRepository__Group_3_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3_3__0__Impl
+	rule__RoutesRepository__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); }
+(rule__RoutesRepository__RoutesAssignment_3_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__0__Impl
+	rule__RoutesRepository__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); }
+
+	'flowRoutes' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__1__Impl
+	rule__RoutesRepository__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__2__Impl
+	rule__RoutesRepository__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); }
+(rule__RoutesRepository__FlowRoutesAssignment_4_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__3__Impl
+	rule__RoutesRepository__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); }
+(rule__RoutesRepository__Group_4_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_4_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4_3__0__Impl
+	rule__RoutesRepository__Group_4_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_4_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_4_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_4_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); }
+(rule__RoutesRepository__FlowRoutesAssignment_4_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__RoutesRepository__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__0__Impl
+	rule__RoutesRepository__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); }
+
+	'directions' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__1__Impl
+	rule__RoutesRepository__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__2__Impl
+	rule__RoutesRepository__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); }
+(rule__RoutesRepository__DirectionsAssignment_5_2)
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__3__Impl
+	rule__RoutesRepository__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); }
+(rule__RoutesRepository__Group_5_3__0)*
+{ after(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__RoutesRepository__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5_3__0__Impl
+	rule__RoutesRepository__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__RoutesRepository__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__RoutesRepository__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); }
+(rule__RoutesRepository__DirectionsAssignment_5_3_1)
+{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolStack__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__0__Impl
+	rule__ProtocolStack__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); }
+
+	'ProtocolStack' 
+
+{ after(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__1__Impl
+	rule__ProtocolStack__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); }
+(rule__ProtocolStack__NameAssignment_1)
+{ after(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__2__Impl
+	rule__ProtocolStack__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__3__Impl
+	rule__ProtocolStack__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_3()); }
+(rule__ProtocolStack__Group_3__0)?
+{ after(grammarAccess.getProtocolStackAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__4__Impl
+	rule__ProtocolStack__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); }
+
+	'layers' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__5__Impl
+	rule__ProtocolStack__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__6__Impl
+	rule__ProtocolStack__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); }
+(rule__ProtocolStack__LayersAssignment_6)
+{ after(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__7__Impl
+	rule__ProtocolStack__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_7()); }
+(rule__ProtocolStack__Group_7__0)*
+{ after(grammarAccess.getProtocolStackAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__8__Impl
+	rule__ProtocolStack__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolStack__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__0__Impl
+	rule__ProtocolStack__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__1__Impl
+	rule__ProtocolStack__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__2__Impl
+	rule__ProtocolStack__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); }
+(rule__ProtocolStack__AlternativeNamesAssignment_3_2)
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__3__Impl
+	rule__ProtocolStack__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getGroup_3_3()); }
+(rule__ProtocolStack__Group_3_3__0)*
+{ after(grammarAccess.getProtocolStackAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolStack__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3_3__0__Impl
+	rule__ProtocolStack__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); }
+(rule__ProtocolStack__AlternativeNamesAssignment_3_3_1)
+{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolStack__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_7__0__Impl
+	rule__ProtocolStack__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolStack__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolStack__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); }
+(rule__ProtocolStack__LayersAssignment_7_1)
+{ after(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__0__Impl
+	rule__ProtocolLayer__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); }
+
+	'ProtocolLayer' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__1__Impl
+	rule__ProtocolLayer__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); }
+(rule__ProtocolLayer__NameAssignment_1)
+{ after(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__2__Impl
+	rule__ProtocolLayer__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__3__Impl
+	rule__ProtocolLayer__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_3()); }
+(rule__ProtocolLayer__Group_3__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__4__Impl
+	rule__ProtocolLayer__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); }
+
+	'protocol' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__5__Impl
+	rule__ProtocolLayer__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); }
+(rule__ProtocolLayer__ProtocolAssignment_5)
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__6__Impl
+	rule__ProtocolLayer__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_6()); }
+(rule__ProtocolLayer__Group_6__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__7__Impl
+	rule__ProtocolLayer__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_7()); }
+(rule__ProtocolLayer__Group_7__0)?
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolLayer__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__0__Impl
+	rule__ProtocolLayer__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__1__Impl
+	rule__ProtocolLayer__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__2__Impl
+	rule__ProtocolLayer__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); }
+(rule__ProtocolLayer__AlternativeNamesAssignment_3_2)
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__3__Impl
+	rule__ProtocolLayer__Group_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); }
+(rule__ProtocolLayer__Group_3_3__0)*
+{ after(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProtocolLayer__Group_3_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3_3__0__Impl
+	rule__ProtocolLayer__Group_3_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_3_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_3_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_3_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); }
+(rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1)
+{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_6__0__Impl
+	rule__ProtocolLayer__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); }
+
+	'isCarriedBy' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); }
+(rule__ProtocolLayer__IsCarriedByAssignment_6_1)
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProtocolLayer__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_7__0__Impl
+	rule__ProtocolLayer__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); }
+
+	'carries' 
+
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ProtocolLayer__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ProtocolLayer__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); }
+(rule__ProtocolLayer__CarriesAssignment_7_1)
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__0__Impl
+	rule__Route__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRouteKeyword_0()); }
+
+	'Route' 
+
+{ after(grammarAccess.getRouteAccess().getRouteKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__1__Impl
+	rule__Route__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getIdAssignment_1()); }
+(rule__Route__IdAssignment_1)
+{ after(grammarAccess.getRouteAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__2__Impl
+	rule__Route__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__3__Impl
+	rule__Route__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getRouteAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__4__Impl
+	rule__Route__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameAssignment_4()); }
+(rule__Route__NameAssignment_4)
+{ after(grammarAccess.getRouteAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__5__Impl
+	rule__Route__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_5()); }
+(rule__Route__Group_5__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__6__Impl
+	rule__Route__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_6()); }
+(rule__Route__Group_6__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__7__Impl
+	rule__Route__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartKeyword_7()); }
+
+	'start' 
+
+{ after(grammarAccess.getRouteAccess().getStartKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__8__Impl
+	rule__Route__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartAssignment_8()); }
+(rule__Route__StartAssignment_8)
+{ after(grammarAccess.getRouteAccess().getStartAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__9__Impl
+	rule__Route__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndKeyword_9()); }
+
+	'end' 
+
+{ after(grammarAccess.getRouteAccess().getEndKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__10__Impl
+	rule__Route__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndAssignment_10()); }
+(rule__Route__EndAssignment_10)
+{ after(grammarAccess.getRouteAccess().getEndAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__11__Impl
+	rule__Route__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_11()); }
+(rule__Route__Group_11__0)?
+{ after(grammarAccess.getRouteAccess().getGroup_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group__12__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); }
+
+	'}' 
+
+{ after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Route__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__0__Impl
+	rule__Route__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__1__Impl
+	rule__Route__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__2__Impl
+	rule__Route__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__Route__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__3__Impl
+	rule__Route__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getGroup_5_3()); }
+(rule__Route__Group_5_3__0)*
+{ after(grammarAccess.getRouteAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Route__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5_3__0__Impl
+	rule__Route__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__Route__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_6__0__Impl
+	rule__Route__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); }
+
+	'numHops' 
+
+{ after(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); }
+(rule__Route__NumHopsAssignment_6_1)
+{ after(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Route__Group_11__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_11__0__Impl
+	rule__Route__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_11__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); }
+
+	'hops' 
+
+{ after(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Route__Group_11__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Route__Group_11__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__Group_11__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); }
+(rule__Route__HopsAssignment_11_1)
+{ after(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__0__Impl
+	rule__FlowRoute__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); }
+
+	'FlowRoute' 
+
+{ after(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__1__Impl
+	rule__FlowRoute__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); }
+(rule__FlowRoute__IdAssignment_1)
+{ after(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__2__Impl
+	rule__FlowRoute__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__3__Impl
+	rule__FlowRoute__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__4__Impl
+	rule__FlowRoute__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); }
+(rule__FlowRoute__NameAssignment_4)
+{ after(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__5__Impl
+	rule__FlowRoute__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_5()); }
+(rule__FlowRoute__Group_5__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__6__Impl
+	rule__FlowRoute__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_6()); }
+(rule__FlowRoute__Group_6__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__7__Impl
+	rule__FlowRoute__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); }
+
+	'flow' 
+
+{ after(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__8__Impl
+	rule__FlowRoute__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); }
+(rule__FlowRoute__FlowAssignment_8)
+{ after(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__9__Impl
+	rule__FlowRoute__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); }
+
+	'start' 
+
+{ after(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__10__Impl
+	rule__FlowRoute__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); }
+(rule__FlowRoute__StartAssignment_10)
+{ after(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__11__Impl
+	rule__FlowRoute__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); }
+
+	'end' 
+
+{ after(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__12__Impl
+	rule__FlowRoute__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); }
+(rule__FlowRoute__EndAssignment_12)
+{ after(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__13__Impl
+	rule__FlowRoute__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_13()); }
+(rule__FlowRoute__Group_13__0)?
+{ after(grammarAccess.getFlowRouteAccess().getGroup_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group__14__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); }
+
+	'}' 
+
+{ after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowRoute__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__0__Impl
+	rule__FlowRoute__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__1__Impl
+	rule__FlowRoute__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__2__Impl
+	rule__FlowRoute__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__FlowRoute__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__3__Impl
+	rule__FlowRoute__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getGroup_5_3()); }
+(rule__FlowRoute__Group_5_3__0)*
+{ after(grammarAccess.getFlowRouteAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FlowRoute__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5_3__0__Impl
+	rule__FlowRoute__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__FlowRoute__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_6__0__Impl
+	rule__FlowRoute__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); }
+
+	'numHops' 
+
+{ after(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); }
+(rule__FlowRoute__NumHopsAssignment_6_1)
+{ after(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FlowRoute__Group_13__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_13__0__Impl
+	rule__FlowRoute__Group_13__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_13__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); }
+
+	'hops' 
+
+{ after(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__FlowRoute__Group_13__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__FlowRoute__Group_13__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__Group_13__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); }
+(rule__FlowRoute__HopsAssignment_13_1)
+{ after(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__0__Impl
+	rule__Direction__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); }
+(rule__Direction__IsDefaultAssignment_0)?
+{ after(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__1__Impl
+	rule__Direction__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); }
+
+	'Direction' 
+
+{ after(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__2__Impl
+	rule__Direction__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIdAssignment_2()); }
+(rule__Direction__IdAssignment_2)
+{ after(grammarAccess.getDirectionAccess().getIdAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__3__Impl
+	rule__Direction__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__4__Impl
+	rule__Direction__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameKeyword_4()); }
+
+	'name' 
+
+{ after(grammarAccess.getDirectionAccess().getNameKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__5__Impl
+	rule__Direction__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameAssignment_5()); }
+(rule__Direction__NameAssignment_5)
+{ after(grammarAccess.getDirectionAccess().getNameAssignment_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__6__Impl
+	rule__Direction__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_6()); }
+(rule__Direction__Group_6__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__7__Impl
+	rule__Direction__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_7()); }
+(rule__Direction__Group_7__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__8__Impl
+	rule__Direction__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); }
+
+	'onNode' 
+
+{ after(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__9__Impl
+	rule__Direction__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); }
+(rule__Direction__OnNodeAssignment_9)
+{ after(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__10__Impl
+	rule__Direction__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_10()); }
+(rule__Direction__Group_10__0)?
+{ after(grammarAccess.getDirectionAccess().getGroup_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__11__Impl
+	rule__Direction__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaKeyword_11()); }
+
+	'via' 
+
+{ after(grammarAccess.getDirectionAccess().getViaKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__12__Impl
+	rule__Direction__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaAssignment_12()); }
+(rule__Direction__ViaAssignment_12)
+{ after(grammarAccess.getDirectionAccess().getViaAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); }
+
+	'}' 
+
+{ after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Direction__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__0__Impl
+	rule__Direction__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__1__Impl
+	rule__Direction__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__2__Impl
+	rule__Direction__Group_6__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); }
+(rule__Direction__AlternativeNamesAssignment_6_2)
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__3__Impl
+	rule__Direction__Group_6__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getGroup_6_3()); }
+(rule__Direction__Group_6_3__0)*
+{ after(grammarAccess.getDirectionAccess().getGroup_6_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Direction__Group_6_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6_3__0__Impl
+	rule__Direction__Group_6_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_6_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_6_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_6_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); }
+(rule__Direction__AlternativeNamesAssignment_6_3_1)
+{ after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_7__0__Impl
+	rule__Direction__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); }
+
+	'distance' 
+
+{ after(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); }
+(rule__Direction__DistanceAssignment_7_1)
+{ after(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Direction__Group_10__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_10__0__Impl
+	rule__Direction__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_10__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); }
+
+	'flow' 
+
+{ after(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Direction__Group_10__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Direction__Group_10__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__Group_10__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); }
+(rule__Direction__FlowAssignment_10_1)
+{ after(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Hop__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__0__Impl
+	rule__Hop__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getHopKeyword_0()); }
+
+	'Hop' 
+
+{ after(grammarAccess.getHopAccess().getHopKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__1__Impl
+	rule__Hop__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__2__Impl
+	rule__Hop__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); }
+
+	'interfaceref' 
+
+{ after(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__3__Impl
+	rule__Hop__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); }
+(rule__Hop__InterfacerefAssignment_3)
+{ after(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__4__Impl
+	rule__Hop__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getGroup_4()); }
+(rule__Hop__Group_4__0)?
+{ after(grammarAccess.getHopAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); }
+
+	'}' 
+
+{ after(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Hop__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group_4__0__Impl
+	rule__Hop__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); }
+
+	'nextHop' 
+
+{ after(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Hop__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Hop__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); }
+(rule__Hop__NextHopAssignment_4_1)
+{ after(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__EIntegerObject__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EIntegerObject__Group__0__Impl
+	rule__EIntegerObject__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EIntegerObject__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); }
+(
+	'-' 
+)?
+{ after(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EIntegerObject__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__EIntegerObject__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EIntegerObject__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); }
+	RULE_INT
+{ after(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__0__Impl
+	rule__PhysicalNetworkInterface__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); }
+
+	'PhysicalNetworkInterface' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__1__Impl
+	rule__PhysicalNetworkInterface__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); }
+(rule__PhysicalNetworkInterface__IdAssignment_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__2__Impl
+	rule__PhysicalNetworkInterface__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__3__Impl
+	rule__PhysicalNetworkInterface__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__4__Impl
+	rule__PhysicalNetworkInterface__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); }
+(rule__PhysicalNetworkInterface__NameAssignment_4)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__5__Impl
+	rule__PhysicalNetworkInterface__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); }
+(rule__PhysicalNetworkInterface__Group_5__0)?
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__6__Impl
+	rule__PhysicalNetworkInterface__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+
+	'usedProtocolStack' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__7__Impl
+	rule__PhysicalNetworkInterface__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+(rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__8__Impl
+	rule__PhysicalNetworkInterface__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); }
+(rule__PhysicalNetworkInterface__Group_8__0)?
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__9__Impl
+	rule__PhysicalNetworkInterface__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__10__Impl
+	rule__PhysicalNetworkInterface__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+(rule__PhysicalNetworkInterface__PerformanceAssignment_10)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__0__Impl
+	rule__PhysicalNetworkInterface__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__1__Impl
+	rule__PhysicalNetworkInterface__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__2__Impl
+	rule__PhysicalNetworkInterface__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__3__Impl
+	rule__PhysicalNetworkInterface__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); }
+(rule__PhysicalNetworkInterface__Group_5_3__0)*
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5_3__0__Impl
+	rule__PhysicalNetworkInterface__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__0__Impl
+	rule__PhysicalNetworkInterface__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__1__Impl
+	rule__PhysicalNetworkInterface__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__2__Impl
+	rule__PhysicalNetworkInterface__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+(rule__PhysicalNetworkInterface__AddressesAssignment_8_2)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__3__Impl
+	rule__PhysicalNetworkInterface__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); }
+(rule__PhysicalNetworkInterface__Group_8_3__0)*
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PhysicalNetworkInterface__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8_3__0__Impl
+	rule__PhysicalNetworkInterface__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PhysicalNetworkInterface__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PhysicalNetworkInterface__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+(rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__0__Impl
+	rule__VirtualNetworkInterface__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); }
+
+	'VirtualNetworkInterface' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__1__Impl
+	rule__VirtualNetworkInterface__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); }
+(rule__VirtualNetworkInterface__IdAssignment_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__2__Impl
+	rule__VirtualNetworkInterface__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__3__Impl
+	rule__VirtualNetworkInterface__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); }
+
+	'name' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__4__Impl
+	rule__VirtualNetworkInterface__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); }
+(rule__VirtualNetworkInterface__NameAssignment_4)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__5__Impl
+	rule__VirtualNetworkInterface__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); }
+(rule__VirtualNetworkInterface__Group_5__0)?
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__6__Impl
+	rule__VirtualNetworkInterface__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+
+	'usedProtocolStack' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__7__Impl
+	rule__VirtualNetworkInterface__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+(rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__8__Impl
+	rule__VirtualNetworkInterface__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); }
+(rule__VirtualNetworkInterface__Group_8__0)?
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__9__Impl
+	rule__VirtualNetworkInterface__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+
+	'performance' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__10__Impl
+	rule__VirtualNetworkInterface__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+(rule__VirtualNetworkInterface__PerformanceAssignment_10)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__0__Impl
+	rule__VirtualNetworkInterface__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+
+	'alternativeNames' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__1__Impl
+	rule__VirtualNetworkInterface__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__2__Impl
+	rule__VirtualNetworkInterface__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+(rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__3__Impl
+	rule__VirtualNetworkInterface__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); }
+(rule__VirtualNetworkInterface__Group_5_3__0)*
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_5_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5_3__0__Impl
+	rule__VirtualNetworkInterface__Group_5_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_5_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_5_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_5_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+(rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_8__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__0__Impl
+	rule__VirtualNetworkInterface__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+
+	'addresses' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__1__Impl
+	rule__VirtualNetworkInterface__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__2__Impl
+	rule__VirtualNetworkInterface__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+(rule__VirtualNetworkInterface__AddressesAssignment_8_2)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__3__Impl
+	rule__VirtualNetworkInterface__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); }
+(rule__VirtualNetworkInterface__Group_8_3__0)*
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__VirtualNetworkInterface__Group_8_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8_3__0__Impl
+	rule__VirtualNetworkInterface__Group_8_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+
+	',' 
+
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VirtualNetworkInterface__Group_8_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__VirtualNetworkInterface__Group_8_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__Group_8_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+(rule__VirtualNetworkInterface__AddressesAssignment_8_3_1)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__NetworkInfrastructure__DataCenterNameAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); }
+	ruleEString{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__DataCenterAltNameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__TrafficAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); }
+	ruleNetworkTraffic{ after(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__StructureAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); }
+	ruleNetworkStructure{ after(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ConfigurationAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); }
+	ruleNetworkConfiguration{ after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ParamsAssignment_12_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); }
+	ruleExperimentParam{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkInfrastructure__ParamsAssignment_12_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); }
+	ruleExperimentParam{ after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+	ruleEBoolean{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+	ruleSpeedUnit{ after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+	ruleEBoolean{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+	ruleSpeedUnit{ after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+	ruleDependency{ after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+	ruleDependency{ after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__DataplaneAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); }
+	ruleDataPlanePerfSpec{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntermediateNodePerfSpec__ControlplaneAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); }
+	ruleControlPlanePerfSpec{ after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); }
+	ruleDependency{ after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); }
+	ruleDependency{ after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__DataplaneAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); }
+	ruleDataPlanePerfSpec{ after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndNodePerfSpec__ControlplaneAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); }
+	ruleControlPlanePerfSpec{ after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__FlowsAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); }
+	ruleFlow{ after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__FlowsAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); }
+	ruleFlow{ after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__SoftwareAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); }
+	ruleSoftwareComponent{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkTraffic__SoftwareAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); }
+	ruleSoftwareComponent{ after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__NodesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); }
+	ruleNode{ after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__NodesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); }
+	ruleNode{ after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__LinksAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); }
+	ruleLink{ after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkStructure__LinksAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); }
+	ruleLink{ after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); }
+	ruleProtocolsRepository{ after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkConfiguration__RoutesAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); }
+	ruleRoutesRepository{ after(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExperimentParam__ValueAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__DeployedOnAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); }
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__TrafficSourcesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); }
+	ruleTrafficSource{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); }
+	ruleTrafficSource{ after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__AddressAssignment_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); }
+	ruleEString{ after(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EntityAddress__AddressGivenByAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); }
+(
+{ before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); }
+	ruleEString{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); }
+)
+{ after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__StartStateAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+
+	'startState' 
+
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__IdAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); }
+	RULE_ID{ after(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__NameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__AlternativeNamesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); }
+(
+{ before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); }
+	ruleEString{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); }
+)
+{ after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationAddressesAssignment_9_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__ONstateIATAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__ONstateDurationAssignment_13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__OFFstateDurationAssignment_15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ONOFFFlow__PacketLengthAssignment_17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); }
+	ruleDependency{ after(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); }
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); }
+)
+{ after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__SourceSoftwareComponentAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationAddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DestinationAddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericFlow__DataSizeAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); }
+	ruleDependency{ after(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__DeliveryGuaranteedAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+
+	'deliveryGuaranteed' 
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__NameAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__AlternativeNamesAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); }
+	ruleEString{ after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__MtuAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__HeadersLengthAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__DataUnitLengthAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); }
+	ruleEInt{ after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NetworkProtocol__ConnectionlessAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); }
+	ruleEBoolean{ after(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__ValueAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); }
+	ruleEDouble{ after(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDoubleVariable__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__ValueAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); }
+	ruleELong{ after(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantLongVariable__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__UnitAssignment_2_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RandomVariable__CdfAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); }
+	ruleFunction{ after(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__NumArgsAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+	ruleEInt{ after(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__EquationAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ContinuousFunction__UnitAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__NumArgsAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+	ruleEInt{ after(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__UnitAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+	ruleDNIUnit{ after(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__XAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__XAssignment_8_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DiscreteFunction__YAssignment_11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); }
+	ruleDataSeries{ after(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__PrefixAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); }
+	ruleUnitPrefix{ after(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__ValueAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); }
+	ruleEFloat{ after(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SpeedUnit__UnitAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); }
+	ruleSpeed{ after(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__DataAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); }
+	ruleEDouble{ after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DataSeries__DataAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); }
+	ruleEDouble{ after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AddressesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__AddressesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__WorkloadAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); }
+	ruleWorkload{ after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TrafficSource__WorkloadAssignment_10_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); }
+	ruleWorkload{ after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__ActionsAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); }
+	ruleAbstractAction{ after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GenericWorkload__ActionsAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__InternAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+	ruleAbstractAction{ after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BranchAction__InternAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__InternAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); }
+	ruleAbstractAction{ after(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__LoopAction__NumIterationsAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); }
+	ruleDependency{ after(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__InternAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+	ruleAbstractAction{ after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceAction__InternAssignment_5_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+	ruleAbstractAction{ after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TransmitAction__FlowAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); }
+(
+{ before(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__WaitAction__WaitTimeAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); }
+	ruleDependency{ after(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__SoftwareAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__SoftwareAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__HostedOnAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); }
+(
+{ before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__InterfacesAssignment_11_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); }
+	ruleVirtualNetworkInterface{ after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNode__InterfacesAssignment_11_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); }
+	ruleVirtualNetworkInterface{ after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__SoftwareAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__SoftwareAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__HostsAssignment_7_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__HostsAssignment_7_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); }
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__PerformanceAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__InterfacesAssignment_10_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); }
+	ruleNetworkInterface{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNode__InterfacesAssignment_10_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); }
+	ruleNetworkInterface{ after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__ConnectsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__ConnectsAssignment_9_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); }
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+)
+{ after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalLink__PerformanceAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__ConnectsAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__ConnectsAssignment_9_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); }
+(
+{ before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); }
+)
+{ after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualLink__PerformanceAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__StacksAssignment_2_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); }
+	ruleProtocolStack{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__StacksAssignment_2_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); }
+	ruleProtocolStack{ after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__ProtocolsAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); }
+	ruleNetworkProtocol{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolsRepository__ProtocolsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); }
+	ruleNetworkProtocol{ after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__RoutesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); }
+	ruleRoute{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__RoutesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); }
+	ruleRoute{ after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__FlowRoutesAssignment_4_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); }
+	ruleFlowRoute{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__FlowRoutesAssignment_4_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); }
+	ruleFlowRoute{ after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__DirectionsAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); }
+	ruleDirection{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RoutesRepository__DirectionsAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); }
+	ruleDirection{ after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__AlternativeNamesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__AlternativeNamesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__LayersAssignment_6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); }
+	ruleProtocolLayer{ after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolStack__LayersAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); }
+	ruleProtocolLayer{ after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__NameAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__AlternativeNamesAssignment_3_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__ProtocolAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__IsCarriedByAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ProtocolLayer__CarriesAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); }
+(
+{ before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); }
+	ruleEString{ after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); }
+)
+{ after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__NumHopsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+	ruleEIntegerObject{ after(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__StartAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); }
+(
+{ before(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__EndAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); }
+(
+{ before(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Route__HopsAssignment_11_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); }
+	ruleHop{ after(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__NumHopsAssignment_6_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+	ruleEIntegerObject{ after(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__FlowAssignment_8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__StartAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__EndAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); }
+(
+{ before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+	ruleEString{ after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+)
+{ after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowRoute__HopsAssignment_13_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); }
+	ruleHop{ after(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__IsDefaultAssignment_0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+
+	'isDefault' 
+
+{ after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+)
+
+{ after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__IdAssignment_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); }
+	RULE_ID{ after(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__NameAssignment_5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__AlternativeNamesAssignment_6_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__AlternativeNamesAssignment_6_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__DistanceAssignment_7_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); }
+	ruleELong{ after(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__OnNodeAssignment_9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__FlowAssignment_10_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Direction__ViaAssignment_12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); }
+(
+{ before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+	ruleEString{ after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); }
+)
+{ after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__InterfacerefAssignment_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); }
+(
+{ before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); }
+	ruleEString{ after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Hop__NextHopAssignment_4_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); }
+	ruleHop{ after(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PhysicalNetworkInterface__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); }
+	rulePhysicalNetworkInterfacePerfSpec{ after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__IdAssignment_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+	RULE_ID{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__NameAssignment_4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+	ruleEString{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); }
+)
+{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AddressesAssignment_8_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+	ruleEntityAddress{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__AddressesAssignment_8_3_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+	ruleEntityAddress{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VirtualNetworkInterface__PerformanceAssignment_10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+	rulePerformanceSpecification{ after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+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 : .;
+
+
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens
new file mode 100644
index 0000000000000000000000000000000000000000..cf115ed600497b0f4e4e08981d2f1b38c509b5d5
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.tokens
@@ -0,0 +1,309 @@
+'('=123
+')'=124
+','=31
+'-'=87
+'.'=99
+'BranchAction'=109
+'BytesPerSec'=19
+'ConstantDoubleVariable'=88
+'ConstantLongVariable'=90
+'ContinuousFunction'=93
+'DataPlanePerfSpec'=45
+'DataSeries'=102
+'Direction'=149
+'DiscreteFunction'=96
+'E'=13
+'EndNodePerfSpec'=51
+'EntityAddress'=69
+'ExperimentParam'=62
+'FlowRoute'=148
+'G'=18
+'GenericFlow'=80
+'GenericWorkload'=107
+'Hop'=153
+'IntermediateNodePerfSpec'=42
+'K'=16
+'LoopAction'=111
+'M'=17
+'MTU'=35
+'NetworkConfiguration'=59
+'NetworkInfrastructure'=22
+'NetworkProtocol'=82
+'NetworkStructure'=56
+'NetworkTraffic'=53
+'OFFstateDuration'=75
+'ONOFFFlow'=72
+'ONstateDuration'=74
+'ONstateIAT'=73
+'PhysicalLink'=128
+'PhysicalLinkPerfSpec'=41
+'PhysicalNetworkInterface'=156
+'PhysicalNetworkInterfacePerfSpec'=37
+'PhysicalNode'=126
+'ProtocolLayer'=139
+'ProtocolStack'=137
+'ProtocolsRepository'=131
+'RandomVariable'=91
+'Route'=143
+'RoutesRepository'=134
+'SequenceAction'=113
+'SoftwareComponent'=64
+'SpeedUnit'=100
+'StartAction'=114
+'StopAction'=115
+'TrafficSource'=104
+'TransmitAction'=116
+'VirtualLink'=130
+'VirtualLinkPerfSpec'=38
+'VirtualNetworkInterface'=158
+'VirtualNetworkInterfacePerfSpec'=32
+'VirtualNode'=120
+'WaitAction'=118
+'actions'=108
+'address'=70
+'addressGivenBy'=71
+'addresses'=106
+'alternativeNames'=67
+'bitsPerSec'=20
+'carries'=142
+'cdf'=92
+'configuration'=28
+'connectionless'=86
+'connects'=129
+'controlplane'=44
+'data'=103
+'dataCenterAltName'=25
+'dataCenterName'=24
+'dataSize'=81
+'dataUnitLength'=85
+'dataplane'=43
+'deliveryGuaranteed'=160
+'deployedOn'=66
+'destinationAddresses'=79
+'destinationSoftwareComponent'=77
+'directions'=136
+'distance'=152
+'e'=14
+'end'=145
+'equation'=95
+'false'=12
+'flow'=117
+'flowRoutes'=135
+'flows'=54
+'forwardingBandwidthBPS'=50
+'forwardingBandwidthPPS'=49
+'forwardingLatency'=48
+'headersLength'=84
+'hops'=147
+'hostedOn'=121
+'hosts'=127
+'interfaceSpeed'=36
+'interfaceref'=154
+'interfaces'=125
+'intern'=110
+'isCarriedBy'=141
+'isDefault'=161
+'isUp'=33
+'layers'=138
+'links'=58
+'maxSupportedBandwidth'=40
+'mtu'=83
+'name'=65
+'nextHop'=155
+'nodes'=57
+'none'=15
+'numArgs'=94
+'numHops'=146
+'numIterations'=112
+'onNode'=150
+'packetLength'=76
+'packetProcessingTime'=34
+'packetsPerSec'=21
+'params'=30
+'performance'=122
+'prefix'=101
+'processingBandwidthReqPS'=47
+'processingLatency'=46
+'propagationDelay'=39
+'protocol'=140
+'protocols'=132
+'protocolsAndStacks'=60
+'routes'=61
+'software'=55
+'softwareLayersDelay'=52
+'sourceSoftwareComponent'=78
+'stacks'=133
+'start'=144
+'startState'=159
+'structure'=27
+'traffic'=26
+'trafficSources'=68
+'true'=11
+'unit'=89
+'usedProtocolStack'=157
+'value'=63
+'via'=151
+'waitTime'=119
+'workload'=105
+'x'=97
+'y'=98
+'{'=23
+'}'=29
+RULE_ANY_OTHER=10
+RULE_ID=5
+RULE_INT=6
+RULE_ML_COMMENT=7
+RULE_SL_COMMENT=8
+RULE_STRING=4
+RULE_WS=9
+T__100=100
+T__101=101
+T__102=102
+T__103=103
+T__104=104
+T__105=105
+T__106=106
+T__107=107
+T__108=108
+T__109=109
+T__110=110
+T__111=111
+T__112=112
+T__113=113
+T__114=114
+T__115=115
+T__116=116
+T__117=117
+T__118=118
+T__119=119
+T__11=11
+T__120=120
+T__121=121
+T__122=122
+T__123=123
+T__124=124
+T__125=125
+T__126=126
+T__127=127
+T__128=128
+T__129=129
+T__12=12
+T__130=130
+T__131=131
+T__132=132
+T__133=133
+T__134=134
+T__135=135
+T__136=136
+T__137=137
+T__138=138
+T__139=139
+T__13=13
+T__140=140
+T__141=141
+T__142=142
+T__143=143
+T__144=144
+T__145=145
+T__146=146
+T__147=147
+T__148=148
+T__149=149
+T__14=14
+T__150=150
+T__151=151
+T__152=152
+T__153=153
+T__154=154
+T__155=155
+T__156=156
+T__157=157
+T__158=158
+T__159=159
+T__15=15
+T__160=160
+T__161=161
+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
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d5cfe5105ecb761717fc728b55262945ae4551c
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextLexer.java
@@ -0,0 +1,6523 @@
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import. 
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalDNITextLexer extends Lexer {
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__159=159;
+    public static final int T__27=27;
+    public static final int T__158=158;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__160=160;
+    public static final int EOF=-1;
+    public static final int T__161=161;
+    public static final int T__93=93;
+    public static final int T__94=94;
+    public static final int T__19=19;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__148=148;
+    public static final int T__90=90;
+    public static final int T__15=15;
+    public static final int T__147=147;
+    public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int T__149=149;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__154=154;
+    public static final int T__155=155;
+    public static final int T__156=156;
+    public static final int T__99=99;
+    public static final int T__157=157;
+    public static final int T__150=150;
+    public static final int T__98=98;
+    public static final int T__151=151;
+    public static final int T__97=97;
+    public static final int T__152=152;
+    public static final int T__96=96;
+    public static final int T__153=153;
+    public static final int T__95=95;
+    public static final int T__139=139;
+    public static final int T__138=138;
+    public static final int T__137=137;
+    public static final int T__136=136;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__141=141;
+    public static final int T__85=85;
+    public static final int T__142=142;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__140=140;
+    public static final int T__86=86;
+    public static final int T__145=145;
+    public static final int T__89=89;
+    public static final int T__146=146;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__143=143;
+    public static final int T__144=144;
+    public static final int T__126=126;
+    public static final int T__125=125;
+    public static final int T__128=128;
+    public static final int RULE_STRING=4;
+    public static final int T__127=127;
+    public static final int T__71=71;
+    public static final int T__129=129;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__130=130;
+    public static final int T__74=74;
+    public static final int T__131=131;
+    public static final int T__73=73;
+    public static final int T__132=132;
+    public static final int T__133=133;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__134=134;
+    public static final int T__77=77;
+    public static final int T__135=135;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__118=118;
+    public static final int T__119=119;
+    public static final int T__116=116;
+    public static final int T__117=117;
+    public static final int T__114=114;
+    public static final int T__115=115;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__120=120;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__109=109;
+    public static final int T__59=59;
+    public static final int T__103=103;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int T__113=113;
+    public static final int RULE_INT=6;
+    public static final int T__112=112;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+    public InternalDNITextLexer() {;} 
+    public InternalDNITextLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalDNITextLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g"; }
+
+    // $ANTLR start "T__11"
+    public final void mT__11() throws RecognitionException {
+        try {
+            int _type = T__11;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11:7: ( 'true' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__11"
+
+    // $ANTLR start "T__12"
+    public final void mT__12() throws RecognitionException {
+        try {
+            int _type = T__12;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12:7: ( 'false' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__12"
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13:7: ( 'E' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13:9: 'E'
+            {
+            match('E'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14:7: ( 'e' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14:9: 'e'
+            {
+            match('e'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $ANTLR start "T__15"
+    public final void mT__15() throws RecognitionException {
+        try {
+            int _type = T__15;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15:7: ( 'none' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15:9: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__15"
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16:7: ( 'K' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16:9: 'K'
+            {
+            match('K'); 
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17:7: ( 'M' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17:9: 'M'
+            {
+            match('M'); 
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18:7: ( 'G' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18:9: 'G'
+            {
+            match('G'); 
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19:7: ( 'BytesPerSec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19:9: 'BytesPerSec'
+            {
+            match("BytesPerSec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20:7: ( 'bitsPerSec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20:9: 'bitsPerSec'
+            {
+            match("bitsPerSec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21:7: ( 'packetsPerSec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21:9: 'packetsPerSec'
+            {
+            match("packetsPerSec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22:7: ( 'NetworkInfrastructure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22:9: 'NetworkInfrastructure'
+            {
+            match("NetworkInfrastructure"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23:7: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__23"
+
+    // $ANTLR start "T__24"
+    public final void mT__24() throws RecognitionException {
+        try {
+            int _type = T__24;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24:7: ( 'dataCenterName' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24:9: 'dataCenterName'
+            {
+            match("dataCenterName"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25:7: ( 'dataCenterAltName' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25:9: 'dataCenterAltName'
+            {
+            match("dataCenterAltName"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26:7: ( 'traffic' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26:9: 'traffic'
+            {
+            match("traffic"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27:7: ( 'structure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27:9: 'structure'
+            {
+            match("structure"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28:7: ( 'configuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28:9: 'configuration'
+            {
+            match("configuration"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29:7: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30:7: ( 'params' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30:9: 'params'
+            {
+            match("params"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31:7: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31:9: ','
+            {
+            match(','); 
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:32:7: ( 'VirtualNetworkInterfacePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:32:9: 'VirtualNetworkInterfacePerfSpec'
+            {
+            match("VirtualNetworkInterfacePerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:33:7: ( 'isUp' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:33:9: 'isUp'
+            {
+            match("isUp"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:34:7: ( 'packetProcessingTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:34:9: 'packetProcessingTime'
+            {
+            match("packetProcessingTime"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:35:7: ( 'MTU' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:35:9: 'MTU'
+            {
+            match("MTU"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:36:7: ( 'interfaceSpeed' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:36:9: 'interfaceSpeed'
+            {
+            match("interfaceSpeed"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:37:7: ( 'PhysicalNetworkInterfacePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:37:9: 'PhysicalNetworkInterfacePerfSpec'
+            {
+            match("PhysicalNetworkInterfacePerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:38:7: ( 'VirtualLinkPerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:38:9: 'VirtualLinkPerfSpec'
+            {
+            match("VirtualLinkPerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:39:7: ( 'propagationDelay' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:39:9: 'propagationDelay'
+            {
+            match("propagationDelay"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:40:7: ( 'maxSupportedBandwidth' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:40:9: 'maxSupportedBandwidth'
+            {
+            match("maxSupportedBandwidth"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:41:7: ( 'PhysicalLinkPerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:41:9: 'PhysicalLinkPerfSpec'
+            {
+            match("PhysicalLinkPerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:42:7: ( 'IntermediateNodePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:42:9: 'IntermediateNodePerfSpec'
+            {
+            match("IntermediateNodePerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:43:7: ( 'dataplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:43:9: 'dataplane'
+            {
+            match("dataplane"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:44:7: ( 'controlplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:44:9: 'controlplane'
+            {
+            match("controlplane"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:45:7: ( 'DataPlanePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:45:9: 'DataPlanePerfSpec'
+            {
+            match("DataPlanePerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:46:7: ( 'processingLatency' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:46:9: 'processingLatency'
+            {
+            match("processingLatency"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:47:7: ( 'processingBandwidthReqPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:47:9: 'processingBandwidthReqPS'
+            {
+            match("processingBandwidthReqPS"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:48:7: ( 'forwardingLatency' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:48:9: 'forwardingLatency'
+            {
+            match("forwardingLatency"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:49:7: ( 'forwardingBandwidthPPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:49:9: 'forwardingBandwidthPPS'
+            {
+            match("forwardingBandwidthPPS"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:50:7: ( 'forwardingBandwidthBPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:50:9: 'forwardingBandwidthBPS'
+            {
+            match("forwardingBandwidthBPS"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:51:7: ( 'EndNodePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:51:9: 'EndNodePerfSpec'
+            {
+            match("EndNodePerfSpec"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:52:7: ( 'softwareLayersDelay' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:52:9: 'softwareLayersDelay'
+            {
+            match("softwareLayersDelay"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:53:7: ( 'NetworkTraffic' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:53:9: 'NetworkTraffic'
+            {
+            match("NetworkTraffic"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:54:7: ( 'flows' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:54:9: 'flows'
+            {
+            match("flows"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:55:7: ( 'software' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:55:9: 'software'
+            {
+            match("software"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:56:7: ( 'NetworkStructure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:56:9: 'NetworkStructure'
+            {
+            match("NetworkStructure"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:57:7: ( 'nodes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:57:9: 'nodes'
+            {
+            match("nodes"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:58:7: ( 'links' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:58:9: 'links'
+            {
+            match("links"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:59:7: ( 'NetworkConfiguration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:59:9: 'NetworkConfiguration'
+            {
+            match("NetworkConfiguration"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:60:7: ( 'protocolsAndStacks' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:60:9: 'protocolsAndStacks'
+            {
+            match("protocolsAndStacks"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:61:7: ( 'routes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:61:9: 'routes'
+            {
+            match("routes"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:62:7: ( 'ExperimentParam' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:62:9: 'ExperimentParam'
+            {
+            match("ExperimentParam"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:63:7: ( 'value' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:63:9: 'value'
+            {
+            match("value"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:64:7: ( 'SoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:64:9: 'SoftwareComponent'
+            {
+            match("SoftwareComponent"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:65:7: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:65:9: 'name'
+            {
+            match("name"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:66:7: ( 'deployedOn' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:66:9: 'deployedOn'
+            {
+            match("deployedOn"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:67:7: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:67:9: 'alternativeNames'
+            {
+            match("alternativeNames"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:68:7: ( 'trafficSources' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:68:9: 'trafficSources'
+            {
+            match("trafficSources"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:69:7: ( 'EntityAddress' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:69:9: 'EntityAddress'
+            {
+            match("EntityAddress"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:70:7: ( 'address' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:70:9: 'address'
+            {
+            match("address"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:71:7: ( 'addressGivenBy' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:71:9: 'addressGivenBy'
+            {
+            match("addressGivenBy"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:72:7: ( 'ONOFFFlow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:72:9: 'ONOFFFlow'
+            {
+            match("ONOFFFlow"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:73:7: ( 'ONstateIAT' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:73:9: 'ONstateIAT'
+            {
+            match("ONstateIAT"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:74:7: ( 'ONstateDuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:74:9: 'ONstateDuration'
+            {
+            match("ONstateDuration"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:75:7: ( 'OFFstateDuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:75:9: 'OFFstateDuration'
+            {
+            match("OFFstateDuration"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:76:7: ( 'packetLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:76:9: 'packetLength'
+            {
+            match("packetLength"); 
+
+
+            }
+
+            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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:77:7: ( 'destinationSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:77:9: 'destinationSoftwareComponent'
+            {
+            match("destinationSoftwareComponent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "T__78"
+    public final void mT__78() throws RecognitionException {
+        try {
+            int _type = T__78;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:78:7: ( 'sourceSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:78:9: 'sourceSoftwareComponent'
+            {
+            match("sourceSoftwareComponent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__78"
+
+    // $ANTLR start "T__79"
+    public final void mT__79() throws RecognitionException {
+        try {
+            int _type = T__79;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:79:7: ( 'destinationAddresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:79:9: 'destinationAddresses'
+            {
+            match("destinationAddresses"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__79"
+
+    // $ANTLR start "T__80"
+    public final void mT__80() throws RecognitionException {
+        try {
+            int _type = T__80;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:80:7: ( 'GenericFlow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:80:9: 'GenericFlow'
+            {
+            match("GenericFlow"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__80"
+
+    // $ANTLR start "T__81"
+    public final void mT__81() throws RecognitionException {
+        try {
+            int _type = T__81;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:81:7: ( 'dataSize' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:81:9: 'dataSize'
+            {
+            match("dataSize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__81"
+
+    // $ANTLR start "T__82"
+    public final void mT__82() throws RecognitionException {
+        try {
+            int _type = T__82;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:82:7: ( 'NetworkProtocol' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:82:9: 'NetworkProtocol'
+            {
+            match("NetworkProtocol"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:83:7: ( 'mtu' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:83:9: 'mtu'
+            {
+            match("mtu"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:84:7: ( 'headersLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:84:9: 'headersLength'
+            {
+            match("headersLength"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:85:7: ( 'dataUnitLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:85:9: 'dataUnitLength'
+            {
+            match("dataUnitLength"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:86:7: ( 'connectionless' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:86:9: 'connectionless'
+            {
+            match("connectionless"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:87:7: ( '-' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:87:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:88:7: ( 'ConstantDoubleVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:88:9: 'ConstantDoubleVariable'
+            {
+            match("ConstantDoubleVariable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
+    // $ANTLR start "T__89"
+    public final void mT__89() throws RecognitionException {
+        try {
+            int _type = T__89;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:89:7: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:89:9: 'unit'
+            {
+            match("unit"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__89"
+
+    // $ANTLR start "T__90"
+    public final void mT__90() throws RecognitionException {
+        try {
+            int _type = T__90;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:90:7: ( 'ConstantLongVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:90:9: 'ConstantLongVariable'
+            {
+            match("ConstantLongVariable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__90"
+
+    // $ANTLR start "T__91"
+    public final void mT__91() throws RecognitionException {
+        try {
+            int _type = T__91;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:91:7: ( 'RandomVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:91:9: 'RandomVariable'
+            {
+            match("RandomVariable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__91"
+
+    // $ANTLR start "T__92"
+    public final void mT__92() throws RecognitionException {
+        try {
+            int _type = T__92;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:92:7: ( 'cdf' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:92:9: 'cdf'
+            {
+            match("cdf"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:93:7: ( 'ContinuousFunction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:93:9: 'ContinuousFunction'
+            {
+            match("ContinuousFunction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:94:7: ( 'numArgs' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:94:9: 'numArgs'
+            {
+            match("numArgs"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:95:7: ( 'equation' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:95:9: 'equation'
+            {
+            match("equation"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:96:7: ( 'DiscreteFunction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:96:9: 'DiscreteFunction'
+            {
+            match("DiscreteFunction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
+    // $ANTLR start "T__97"
+    public final void mT__97() throws RecognitionException {
+        try {
+            int _type = T__97;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:97:7: ( 'x' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:97:9: 'x'
+            {
+            match('x'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__97"
+
+    // $ANTLR start "T__98"
+    public final void mT__98() throws RecognitionException {
+        try {
+            int _type = T__98;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:98:7: ( 'y' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:98:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__98"
+
+    // $ANTLR start "T__99"
+    public final void mT__99() throws RecognitionException {
+        try {
+            int _type = T__99;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:99:7: ( '.' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:99:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__99"
+
+    // $ANTLR start "T__100"
+    public final void mT__100() throws RecognitionException {
+        try {
+            int _type = T__100;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:100:8: ( 'SpeedUnit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:100:10: 'SpeedUnit'
+            {
+            match("SpeedUnit"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__100"
+
+    // $ANTLR start "T__101"
+    public final void mT__101() throws RecognitionException {
+        try {
+            int _type = T__101;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:101:8: ( 'prefix' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:101:10: 'prefix'
+            {
+            match("prefix"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__101"
+
+    // $ANTLR start "T__102"
+    public final void mT__102() throws RecognitionException {
+        try {
+            int _type = T__102;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:102:8: ( 'DataSeries' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:102:10: 'DataSeries'
+            {
+            match("DataSeries"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__102"
+
+    // $ANTLR start "T__103"
+    public final void mT__103() throws RecognitionException {
+        try {
+            int _type = T__103;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:103:8: ( 'data' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:103:10: 'data'
+            {
+            match("data"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__103"
+
+    // $ANTLR start "T__104"
+    public final void mT__104() throws RecognitionException {
+        try {
+            int _type = T__104;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:104:8: ( 'TrafficSource' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:104:10: 'TrafficSource'
+            {
+            match("TrafficSource"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__104"
+
+    // $ANTLR start "T__105"
+    public final void mT__105() throws RecognitionException {
+        try {
+            int _type = T__105;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:105:8: ( 'workload' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:105:10: 'workload'
+            {
+            match("workload"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__105"
+
+    // $ANTLR start "T__106"
+    public final void mT__106() throws RecognitionException {
+        try {
+            int _type = T__106;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:106:8: ( 'addresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:106:10: 'addresses'
+            {
+            match("addresses"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__106"
+
+    // $ANTLR start "T__107"
+    public final void mT__107() throws RecognitionException {
+        try {
+            int _type = T__107;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:107:8: ( 'GenericWorkload' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:107:10: 'GenericWorkload'
+            {
+            match("GenericWorkload"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__107"
+
+    // $ANTLR start "T__108"
+    public final void mT__108() throws RecognitionException {
+        try {
+            int _type = T__108;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:108:8: ( 'actions' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:108:10: 'actions'
+            {
+            match("actions"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__108"
+
+    // $ANTLR start "T__109"
+    public final void mT__109() throws RecognitionException {
+        try {
+            int _type = T__109;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:109:8: ( 'BranchAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:109:10: 'BranchAction'
+            {
+            match("BranchAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__109"
+
+    // $ANTLR start "T__110"
+    public final void mT__110() throws RecognitionException {
+        try {
+            int _type = T__110;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:110:8: ( 'intern' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:110:10: 'intern'
+            {
+            match("intern"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__110"
+
+    // $ANTLR start "T__111"
+    public final void mT__111() throws RecognitionException {
+        try {
+            int _type = T__111;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:111:8: ( 'LoopAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:111:10: 'LoopAction'
+            {
+            match("LoopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__111"
+
+    // $ANTLR start "T__112"
+    public final void mT__112() throws RecognitionException {
+        try {
+            int _type = T__112;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:112:8: ( 'numIterations' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:112:10: 'numIterations'
+            {
+            match("numIterations"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__112"
+
+    // $ANTLR start "T__113"
+    public final void mT__113() throws RecognitionException {
+        try {
+            int _type = T__113;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:113:8: ( 'SequenceAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:113:10: 'SequenceAction'
+            {
+            match("SequenceAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__113"
+
+    // $ANTLR start "T__114"
+    public final void mT__114() throws RecognitionException {
+        try {
+            int _type = T__114;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:114:8: ( 'StartAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:114:10: 'StartAction'
+            {
+            match("StartAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__114"
+
+    // $ANTLR start "T__115"
+    public final void mT__115() throws RecognitionException {
+        try {
+            int _type = T__115;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:115:8: ( 'StopAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:115:10: 'StopAction'
+            {
+            match("StopAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__115"
+
+    // $ANTLR start "T__116"
+    public final void mT__116() throws RecognitionException {
+        try {
+            int _type = T__116;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:116:8: ( 'TransmitAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:116:10: 'TransmitAction'
+            {
+            match("TransmitAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__116"
+
+    // $ANTLR start "T__117"
+    public final void mT__117() throws RecognitionException {
+        try {
+            int _type = T__117;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:117:8: ( 'flow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:117:10: 'flow'
+            {
+            match("flow"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__117"
+
+    // $ANTLR start "T__118"
+    public final void mT__118() throws RecognitionException {
+        try {
+            int _type = T__118;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:118:8: ( 'WaitAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:118:10: 'WaitAction'
+            {
+            match("WaitAction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__118"
+
+    // $ANTLR start "T__119"
+    public final void mT__119() throws RecognitionException {
+        try {
+            int _type = T__119;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:119:8: ( 'waitTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:119:10: 'waitTime'
+            {
+            match("waitTime"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__119"
+
+    // $ANTLR start "T__120"
+    public final void mT__120() throws RecognitionException {
+        try {
+            int _type = T__120;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:120:8: ( 'VirtualNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:120:10: 'VirtualNode'
+            {
+            match("VirtualNode"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__120"
+
+    // $ANTLR start "T__121"
+    public final void mT__121() throws RecognitionException {
+        try {
+            int _type = T__121;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:121:8: ( 'hostedOn' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:121:10: 'hostedOn'
+            {
+            match("hostedOn"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__121"
+
+    // $ANTLR start "T__122"
+    public final void mT__122() throws RecognitionException {
+        try {
+            int _type = T__122;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:122:8: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:122:10: 'performance'
+            {
+            match("performance"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__122"
+
+    // $ANTLR start "T__123"
+    public final void mT__123() throws RecognitionException {
+        try {
+            int _type = T__123;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:123:8: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:123:10: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__123"
+
+    // $ANTLR start "T__124"
+    public final void mT__124() throws RecognitionException {
+        try {
+            int _type = T__124;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:124:8: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:124:10: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__124"
+
+    // $ANTLR start "T__125"
+    public final void mT__125() throws RecognitionException {
+        try {
+            int _type = T__125;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:125:8: ( 'interfaces' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:125:10: 'interfaces'
+            {
+            match("interfaces"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__125"
+
+    // $ANTLR start "T__126"
+    public final void mT__126() throws RecognitionException {
+        try {
+            int _type = T__126;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:126:8: ( 'PhysicalNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:126:10: 'PhysicalNode'
+            {
+            match("PhysicalNode"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__126"
+
+    // $ANTLR start "T__127"
+    public final void mT__127() throws RecognitionException {
+        try {
+            int _type = T__127;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:127:8: ( 'hosts' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:127:10: 'hosts'
+            {
+            match("hosts"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__127"
+
+    // $ANTLR start "T__128"
+    public final void mT__128() throws RecognitionException {
+        try {
+            int _type = T__128;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:128:8: ( 'PhysicalLink' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:128:10: 'PhysicalLink'
+            {
+            match("PhysicalLink"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__128"
+
+    // $ANTLR start "T__129"
+    public final void mT__129() throws RecognitionException {
+        try {
+            int _type = T__129;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:129:8: ( 'connects' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:129:10: 'connects'
+            {
+            match("connects"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__129"
+
+    // $ANTLR start "T__130"
+    public final void mT__130() throws RecognitionException {
+        try {
+            int _type = T__130;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:130:8: ( 'VirtualLink' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:130:10: 'VirtualLink'
+            {
+            match("VirtualLink"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $ANTLR start "T__131"
+    public final void mT__131() throws RecognitionException {
+        try {
+            int _type = T__131;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:131:8: ( 'ProtocolsRepository' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:131:10: 'ProtocolsRepository'
+            {
+            match("ProtocolsRepository"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:132:8: ( 'protocols' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:132:10: 'protocols'
+            {
+            match("protocols"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__132"
+
+    // $ANTLR start "T__133"
+    public final void mT__133() throws RecognitionException {
+        try {
+            int _type = T__133;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:133:8: ( 'stacks' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:133:10: 'stacks'
+            {
+            match("stacks"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__133"
+
+    // $ANTLR start "T__134"
+    public final void mT__134() throws RecognitionException {
+        try {
+            int _type = T__134;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:134:8: ( 'RoutesRepository' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:134:10: 'RoutesRepository'
+            {
+            match("RoutesRepository"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__134"
+
+    // $ANTLR start "T__135"
+    public final void mT__135() throws RecognitionException {
+        try {
+            int _type = T__135;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:135:8: ( 'flowRoutes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:135:10: 'flowRoutes'
+            {
+            match("flowRoutes"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__135"
+
+    // $ANTLR start "T__136"
+    public final void mT__136() throws RecognitionException {
+        try {
+            int _type = T__136;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:136:8: ( 'directions' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:136:10: 'directions'
+            {
+            match("directions"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__136"
+
+    // $ANTLR start "T__137"
+    public final void mT__137() throws RecognitionException {
+        try {
+            int _type = T__137;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:137:8: ( 'ProtocolStack' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:137:10: 'ProtocolStack'
+            {
+            match("ProtocolStack"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__137"
+
+    // $ANTLR start "T__138"
+    public final void mT__138() throws RecognitionException {
+        try {
+            int _type = T__138;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:138:8: ( 'layers' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:138:10: 'layers'
+            {
+            match("layers"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__138"
+
+    // $ANTLR start "T__139"
+    public final void mT__139() throws RecognitionException {
+        try {
+            int _type = T__139;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:139:8: ( 'ProtocolLayer' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:139:10: 'ProtocolLayer'
+            {
+            match("ProtocolLayer"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__139"
+
+    // $ANTLR start "T__140"
+    public final void mT__140() throws RecognitionException {
+        try {
+            int _type = T__140;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:140:8: ( 'protocol' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:140:10: 'protocol'
+            {
+            match("protocol"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__140"
+
+    // $ANTLR start "T__141"
+    public final void mT__141() throws RecognitionException {
+        try {
+            int _type = T__141;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:141:8: ( 'isCarriedBy' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:141:10: 'isCarriedBy'
+            {
+            match("isCarriedBy"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__141"
+
+    // $ANTLR start "T__142"
+    public final void mT__142() throws RecognitionException {
+        try {
+            int _type = T__142;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:142:8: ( 'carries' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:142:10: 'carries'
+            {
+            match("carries"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__142"
+
+    // $ANTLR start "T__143"
+    public final void mT__143() throws RecognitionException {
+        try {
+            int _type = T__143;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:143:8: ( 'Route' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:143:10: 'Route'
+            {
+            match("Route"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__143"
+
+    // $ANTLR start "T__144"
+    public final void mT__144() throws RecognitionException {
+        try {
+            int _type = T__144;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:144:8: ( 'start' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:144:10: 'start'
+            {
+            match("start"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__144"
+
+    // $ANTLR start "T__145"
+    public final void mT__145() throws RecognitionException {
+        try {
+            int _type = T__145;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:145:8: ( 'end' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:145:10: 'end'
+            {
+            match("end"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__145"
+
+    // $ANTLR start "T__146"
+    public final void mT__146() throws RecognitionException {
+        try {
+            int _type = T__146;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:146:8: ( 'numHops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:146:10: 'numHops'
+            {
+            match("numHops"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__146"
+
+    // $ANTLR start "T__147"
+    public final void mT__147() throws RecognitionException {
+        try {
+            int _type = T__147;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:147:8: ( 'hops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:147:10: 'hops'
+            {
+            match("hops"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__147"
+
+    // $ANTLR start "T__148"
+    public final void mT__148() throws RecognitionException {
+        try {
+            int _type = T__148;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:148:8: ( 'FlowRoute' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:148:10: 'FlowRoute'
+            {
+            match("FlowRoute"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__148"
+
+    // $ANTLR start "T__149"
+    public final void mT__149() throws RecognitionException {
+        try {
+            int _type = T__149;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:149:8: ( 'Direction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:149:10: 'Direction'
+            {
+            match("Direction"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__149"
+
+    // $ANTLR start "T__150"
+    public final void mT__150() throws RecognitionException {
+        try {
+            int _type = T__150;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:150:8: ( 'onNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:150:10: 'onNode'
+            {
+            match("onNode"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__150"
+
+    // $ANTLR start "T__151"
+    public final void mT__151() throws RecognitionException {
+        try {
+            int _type = T__151;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:151:8: ( 'via' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:151:10: 'via'
+            {
+            match("via"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__151"
+
+    // $ANTLR start "T__152"
+    public final void mT__152() throws RecognitionException {
+        try {
+            int _type = T__152;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:152:8: ( 'distance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:152:10: 'distance'
+            {
+            match("distance"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__152"
+
+    // $ANTLR start "T__153"
+    public final void mT__153() throws RecognitionException {
+        try {
+            int _type = T__153;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:153:8: ( 'Hop' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:153:10: 'Hop'
+            {
+            match("Hop"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__153"
+
+    // $ANTLR start "T__154"
+    public final void mT__154() throws RecognitionException {
+        try {
+            int _type = T__154;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:154:8: ( 'interfaceref' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:154:10: 'interfaceref'
+            {
+            match("interfaceref"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__154"
+
+    // $ANTLR start "T__155"
+    public final void mT__155() throws RecognitionException {
+        try {
+            int _type = T__155;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:155:8: ( 'nextHop' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:155:10: 'nextHop'
+            {
+            match("nextHop"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__155"
+
+    // $ANTLR start "T__156"
+    public final void mT__156() throws RecognitionException {
+        try {
+            int _type = T__156;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:156:8: ( 'PhysicalNetworkInterface' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:156:10: 'PhysicalNetworkInterface'
+            {
+            match("PhysicalNetworkInterface"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__156"
+
+    // $ANTLR start "T__157"
+    public final void mT__157() throws RecognitionException {
+        try {
+            int _type = T__157;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:157:8: ( 'usedProtocolStack' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:157:10: 'usedProtocolStack'
+            {
+            match("usedProtocolStack"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__157"
+
+    // $ANTLR start "T__158"
+    public final void mT__158() throws RecognitionException {
+        try {
+            int _type = T__158;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:158:8: ( 'VirtualNetworkInterface' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:158:10: 'VirtualNetworkInterface'
+            {
+            match("VirtualNetworkInterface"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__158"
+
+    // $ANTLR start "T__159"
+    public final void mT__159() throws RecognitionException {
+        try {
+            int _type = T__159;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:159:8: ( 'startState' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:159:10: 'startState'
+            {
+            match("startState"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__159"
+
+    // $ANTLR start "T__160"
+    public final void mT__160() throws RecognitionException {
+        try {
+            int _type = T__160;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:160:8: ( 'deliveryGuaranteed' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:160:10: 'deliveryGuaranteed'
+            {
+            match("deliveryGuaranteed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__160"
+
+    // $ANTLR start "T__161"
+    public final void mT__161() throws RecognitionException {
+        try {
+            int _type = T__161;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:161:8: ( 'isDefault' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:161:10: 'isDefault'
+            {
+            match("isDefault"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__161"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31190:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31190:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31190:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31190:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+                input.consume();
+
+            }
+            else {
+                MismatchedSetException mse = new MismatchedSetException(null,input);
+                recover(mse);
+                throw mse;}
+
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31190:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:
+            	    {
+            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+            	        input.consume();
+
+            	    }
+            	    else {
+            	        MismatchedSetException mse = new MismatchedSetException(null,input);
+            	        recover(mse);
+            	        throw mse;}
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ID"
+
+    // $ANTLR start "RULE_INT"
+    public final void mRULE_INT() throws RecognitionException {
+        try {
+            int _type = RULE_INT;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31192:10: ( ( '0' .. '9' )+ )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31192:12: ( '0' .. '9' )+
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31192: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 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31192: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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194: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 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194: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 :
+                    	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194: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 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194: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 :
+                    	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194:54: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31194: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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31196:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31196:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31196: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 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31196: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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198: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 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198: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);
+
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198: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 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198:41: ( '\\r' )? '\\n'
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31198: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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31200:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31200:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31200: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 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.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;
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31202:16: ( . )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31202:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=158;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:10: T__11
+                {
+                mT__11(); 
+
+                }
+                break;
+            case 2 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:16: T__12
+                {
+                mT__12(); 
+
+                }
+                break;
+            case 3 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:22: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 4 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:28: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 5 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:34: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 6 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:40: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 7 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:46: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 8 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:52: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 9 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:58: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 10 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:64: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 11 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:70: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 12 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:76: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 13 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:82: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 14 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:88: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 15 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:94: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 16 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:100: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 17 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:106: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 18 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:112: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 19 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:118: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 20 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:124: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 21 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:130: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 22 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:136: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 23 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:142: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 24 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:148: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 25 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:154: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 26 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:160: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 27 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:166: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 28 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:172: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 29 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:178: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 30 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:184: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 31 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:190: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 32 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:196: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 33 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:202: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 34 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:208: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 35 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:214: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 36 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:220: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 37 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:226: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 38 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:232: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 39 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:238: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 40 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:244: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 41 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:250: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 42 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:256: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 43 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:262: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 44 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:268: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 45 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:274: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 46 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:280: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 47 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:286: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 48 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:292: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 49 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:298: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 50 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:304: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 51 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:310: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 52 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:316: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 53 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:322: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 54 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:328: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 55 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:334: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 56 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:340: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 57 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:346: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 58 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:352: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 59 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:358: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 60 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:364: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 61 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:370: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 62 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:376: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 63 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:382: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 64 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:388: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 65 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:394: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 66 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:400: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 67 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:406: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 68 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:412: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 69 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:418: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 70 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:424: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 71 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:430: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 72 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:436: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 73 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:442: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 74 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:448: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 75 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:454: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 76 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:460: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 77 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:466: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 78 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:472: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 79 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:478: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 80 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:484: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 81 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:490: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 82 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:496: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 83 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:502: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 84 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:508: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 85 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:514: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 86 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:520: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 87 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:526: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 88 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:532: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 89 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:538: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 90 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:544: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 91 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:551: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 92 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:558: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 93 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:565: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 94 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:572: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 95 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:579: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 96 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:586: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 97 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:593: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 98 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:600: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 99 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:607: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 100 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:614: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 101 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:621: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 102 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:628: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 103 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:635: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 104 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:642: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 105 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:649: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 106 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:656: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 107 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:663: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 108 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:670: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 109 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:677: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 110 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:684: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 111 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:691: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 112 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:698: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 113 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:705: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 114 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:712: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 115 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:719: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 116 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:726: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 117 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:733: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 118 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:740: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 119 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:747: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 120 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:754: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 121 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:761: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 122 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:768: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 123 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:775: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 124 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:782: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 125 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:789: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 126 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:796: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 127 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:803: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 128 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:810: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 129 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:817: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 130 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:824: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 131 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:831: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 132 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:838: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 133 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:845: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 134 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:852: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 135 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:859: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 136 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:866: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 137 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:873: T__147
+                {
+                mT__147(); 
+
+                }
+                break;
+            case 138 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:880: T__148
+                {
+                mT__148(); 
+
+                }
+                break;
+            case 139 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:887: T__149
+                {
+                mT__149(); 
+
+                }
+                break;
+            case 140 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:894: T__150
+                {
+                mT__150(); 
+
+                }
+                break;
+            case 141 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:901: T__151
+                {
+                mT__151(); 
+
+                }
+                break;
+            case 142 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:908: T__152
+                {
+                mT__152(); 
+
+                }
+                break;
+            case 143 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:915: T__153
+                {
+                mT__153(); 
+
+                }
+                break;
+            case 144 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:922: T__154
+                {
+                mT__154(); 
+
+                }
+                break;
+            case 145 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:929: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 146 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:936: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 147 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:943: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 148 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:950: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 149 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:957: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 150 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:964: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 151 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:971: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 152 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:978: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 153 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:986: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 154 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:995: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 155 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:1007: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 156 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:1023: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 157 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:1039: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 158 :
+                // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1:1047: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\2\71\1\77\1\102\1\71\1\107\1\111\1\113\4\71\1\uffff\3\71\2\uffff\15\71\1\uffff\3\71\1\176\1\177\1\uffff\4\71\2\uffff\3\71\1\67\2\uffff\3\67\2\uffff\1\71\1\uffff\5\71\1\uffff\2\71\1\uffff\4\71\1\uffff\1\71\1\uffff\1\71\1\uffff\7\71\1\uffff\10\71\2\uffff\32\71\1\uffff\5\71\3\uffff\5\71\2\uffff\3\71\5\uffff\11\71\1\u00ed\5\71\1\u00f5\25\71\1\u0110\11\71\1\u011a\10\71\1\u0123\32\71\1\u0140\1\u0141\3\71\1\u0147\4\71\1\uffff\1\u014c\1\71\1\u014e\4\71\1\uffff\14\71\1\u0163\15\71\1\uffff\2\71\1\u0173\6\71\1\uffff\10\71\1\uffff\15\71\1\u0191\2\71\1\u0194\13\71\2\uffff\1\71\1\u01a1\1\71\1\u01a3\1\71\1\uffff\4\71\1\uffff\1\u01a9\1\uffff\24\71\1\uffff\7\71\1\u01c6\7\71\1\uffff\13\71\1\u01da\2\71\1\u01dd\15\71\1\u01eb\1\uffff\2\71\1\uffff\2\71\1\u01f1\11\71\1\uffff\1\71\1\uffff\5\71\1\uffff\11\71\1\u020c\3\71\1\u0210\14\71\1\u021d\1\71\1\uffff\12\71\1\u0229\10\71\1\uffff\1\u0232\1\u0233\1\uffff\15\71\1\uffff\5\71\1\uffff\7\71\1\u024d\1\u024f\6\71\1\u0256\1\71\1\u0258\1\u0259\7\71\1\uffff\3\71\1\uffff\14\71\1\uffff\6\71\1\u027c\4\71\1\uffff\10\71\2\uffff\6\71\1\u0292\1\u0293\21\71\1\uffff\1\71\1\uffff\5\71\1\u02ac\1\uffff\1\71\2\uffff\12\71\1\u02b9\10\71\1\u02c2\5\71\1\u02c8\2\71\1\u02cc\4\71\1\u02d1\1\uffff\25\71\2\uffff\5\71\1\u02f0\7\71\1\u02f9\1\u02fa\11\71\1\uffff\13\71\1\u0310\1\uffff\7\71\1\u0318\1\uffff\5\71\1\uffff\1\u031e\2\71\1\uffff\4\71\1\uffff\4\71\1\u0329\13\71\1\u0338\1\71\1\u033a\5\71\1\u0340\1\u0341\4\71\1\uffff\10\71\2\uffff\2\71\1\u0350\2\71\1\u0354\10\71\1\u035d\6\71\1\uffff\7\71\1\uffff\1\71\1\u036e\2\71\1\u0371\1\uffff\1\u0372\11\71\1\uffff\1\71\1\u037d\12\71\1\u0388\1\71\1\uffff\1\71\1\uffff\2\71\1\u038d\2\71\2\uffff\1\u0390\13\71\1\u039c\1\u039d\1\uffff\3\71\1\uffff\4\71\1\u03a5\1\71\1\u03a7\1\71\1\uffff\7\71\1\u03b0\10\71\1\uffff\2\71\2\uffff\6\71\1\u03c2\1\u03c4\1\u03c5\1\71\1\uffff\12\71\1\uffff\3\71\1\u03d4\1\uffff\2\71\1\uffff\13\71\2\uffff\7\71\1\uffff\1\71\1\uffff\1\u03ea\2\71\1\u03ed\4\71\1\uffff\16\71\1\u0400\2\71\1\uffff\1\71\2\uffff\1\71\1\u0405\1\71\1\u0407\1\u0409\11\71\1\uffff\21\71\1\u0424\1\71\1\u0426\1\71\1\uffff\1\u0428\1\71\1\uffff\21\71\1\u043b\1\uffff\4\71\1\uffff\1\71\1\uffff\1\71\1\uffff\1\71\1\u0443\1\u0444\12\71\1\u044f\6\71\1\u0456\1\71\1\u0458\3\71\1\uffff\1\71\1\uffff\1\71\1\uffff\6\71\1\u0464\3\71\1\u0468\1\71\1\u046a\5\71\1\uffff\1\u0470\2\71\1\u0473\3\71\2\uffff\5\71\1\u047c\1\71\1\u047e\2\71\1\uffff\4\71\1\u0485\1\71\1\uffff\1\u0487\1\uffff\2\71\1\u048a\1\u048b\1\u048c\6\71\1\uffff\2\71\1\u0495\1\uffff\1\71\1\uffff\5\71\1\uffff\2\71\1\uffff\10\71\1\uffff\1\71\1\uffff\1\u04a7\5\71\1\uffff\1\71\1\uffff\2\71\3\uffff\1\71\1\u04b1\4\71\1\u04b6\1\71\1\uffff\16\71\1\u04c6\1\71\1\u04c8\1\uffff\1\u04c9\4\71\1\u04ce\1\u04cf\2\71\1\uffff\1\u04d2\3\71\1\uffff\1\71\1\u04d7\14\71\1\u04e4\1\uffff\1\u04e5\2\uffff\3\71\1\u04e9\2\uffff\2\71\1\uffff\1\71\1\u04ed\2\71\1\uffff\2\71\1\u04f2\11\71\2\uffff\2\71\1\u04fe\1\uffff\3\71\1\uffff\4\71\1\uffff\1\u0507\2\71\1\u050a\2\71\1\u050d\4\71\1\uffff\2\71\1\u0514\2\71\1\u0517\1\71\1\u0519\1\uffff\2\71\1\uffff\1\71\1\u051d\1\uffff\3\71\1\u0521\2\71\1\uffff\1\71\1\u0525\1\uffff\1\71\1\uffff\3\71\1\uffff\1\u052a\2\71\1\uffff\1\u052d\1\u052e\1\71\1\uffff\4\71\1\uffff\1\71\1\u0535\2\uffff\2\71\1\u0538\1\u053a\2\71\1\uffff\1\u053d\1\71\1\uffff\1\71\1\uffff\1\u0541\1\u0542\1\uffff\3\71\2\uffff\6\71\1\u054c\2\71\1\uffff\4\71\1\u0553\1\71\1\uffff\1\u0555\1\uffff";
+    static final String DFA12_eofS =
+        "\u0556\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\162\1\141\2\60\1\141\3\60\1\162\1\151\1\141\1\145\1\uffff\1\141\1\157\1\141\2\uffff\1\151\1\156\1\150\1\141\1\156\2\141\1\157\1\141\1\145\1\143\1\106\1\145\1\uffff\1\157\1\156\1\141\2\60\1\uffff\1\162\1\141\1\157\1\141\2\uffff\1\154\1\156\1\157\1\101\2\uffff\2\0\1\52\2\uffff\1\141\1\uffff\1\154\1\162\1\157\1\144\1\160\1\uffff\1\165\1\144\1\uffff\1\144\2\155\1\170\1\uffff\1\125\1\uffff\1\156\1\uffff\1\164\1\141\1\164\1\143\1\145\1\162\1\164\1\uffff\1\164\1\154\1\162\1\141\1\146\1\156\1\146\1\162\2\uffff\1\162\1\103\1\164\1\171\1\157\1\170\1\165\2\164\1\162\1\156\1\171\1\165\1\154\1\141\1\146\1\145\1\161\1\141\1\164\1\144\1\164\1\117\1\106\1\141\1\160\1\uffff\1\156\1\151\1\145\1\156\1\165\3\uffff\1\141\1\162\1\151\1\157\1\151\2\uffff\1\157\1\116\1\160\5\uffff\1\145\1\146\1\163\2\167\1\116\1\151\1\145\1\141\1\60\3\145\1\101\1\164\1\60\2\145\1\156\1\163\1\153\1\141\1\143\2\146\1\167\1\141\1\154\1\164\1\151\1\145\1\164\1\165\1\143\1\164\1\162\1\146\1\60\1\162\1\164\1\160\1\141\2\145\1\163\1\164\1\123\1\60\1\145\1\141\1\143\1\145\1\153\1\145\1\164\1\165\1\60\1\164\1\145\1\165\1\162\1\160\1\145\1\162\1\151\1\106\1\164\1\163\1\144\1\164\2\163\1\164\2\144\1\164\1\146\1\153\1\164\1\160\1\164\1\167\1\157\2\60\1\146\1\145\1\141\1\60\1\157\1\164\1\162\1\164\1\uffff\1\60\1\163\1\60\1\162\1\164\1\157\1\110\1\uffff\1\162\1\163\1\143\1\120\1\145\1\155\1\141\1\145\1\157\1\151\2\157\1\60\1\157\1\151\1\166\1\143\1\141\1\143\1\153\1\164\1\167\1\143\1\151\1\162\1\145\1\uffff\1\151\1\165\1\60\1\162\1\146\1\162\1\151\1\157\1\165\1\uffff\1\162\1\120\1\162\1\143\1\163\1\162\2\145\1\uffff\1\167\1\144\1\145\1\164\1\101\1\162\1\145\1\157\1\106\1\141\1\164\2\145\1\60\1\164\1\151\1\60\1\120\1\157\1\145\1\146\1\163\1\154\1\124\2\101\1\122\1\144\2\uffff\1\151\1\60\1\162\1\60\1\157\1\uffff\1\144\1\171\2\151\1\uffff\1\60\1\uffff\1\147\1\145\1\160\1\157\1\151\1\120\1\150\1\145\1\164\1\163\1\147\1\163\1\143\1\170\2\162\1\145\1\154\1\151\1\156\1\uffff\1\171\1\156\1\145\1\164\1\156\1\164\1\163\1\60\1\141\1\145\1\147\1\157\1\143\1\145\1\141\1\uffff\1\162\1\141\1\146\2\143\1\160\1\155\1\154\2\145\1\164\1\60\2\163\1\60\1\141\1\125\1\156\1\101\1\143\1\156\1\163\1\156\1\106\1\164\1\141\1\162\1\144\1\60\1\uffff\1\141\1\156\1\uffff\1\162\1\155\1\60\1\151\1\155\1\157\1\151\2\143\1\157\1\145\1\143\1\uffff\1\144\1\uffff\1\165\1\145\1\101\1\155\1\157\1\uffff\1\163\1\162\1\163\1\160\1\143\1\145\1\101\1\162\1\114\1\60\1\141\1\163\1\157\1\60\1\155\1\153\1\156\1\141\1\172\1\151\1\145\1\141\1\162\1\151\1\143\1\165\1\60\1\164\1\uffff\1\162\1\123\1\165\1\154\1\164\1\163\1\154\1\151\1\165\1\141\1\60\1\141\1\157\1\160\1\145\1\141\1\162\1\164\1\151\1\uffff\2\60\1\uffff\1\162\1\156\2\143\1\164\1\141\2\163\1\154\1\145\1\164\1\163\1\117\1\uffff\1\156\1\165\1\157\1\126\1\122\1\uffff\1\143\1\151\1\141\1\155\2\164\1\165\2\60\1\151\1\164\1\120\1\144\1\145\1\156\1\60\1\141\2\60\1\106\1\162\1\143\1\123\1\120\1\162\1\145\1\uffff\1\164\1\151\1\154\1\uffff\1\141\1\103\1\164\1\156\1\145\1\164\1\144\1\164\1\171\1\157\1\145\1\162\1\uffff\1\141\1\145\1\157\1\162\1\160\1\151\1\60\1\114\1\145\1\154\1\143\1\uffff\2\154\1\157\1\144\1\156\1\151\1\145\1\157\2\uffff\1\145\1\151\1\145\1\164\1\151\1\164\2\60\1\157\1\104\1\145\1\114\1\156\1\164\1\157\1\164\1\141\1\145\1\123\1\164\1\144\1\145\2\151\1\164\1\uffff\1\157\1\uffff\1\156\2\145\1\144\1\156\1\60\1\uffff\1\164\2\uffff\1\154\1\157\1\123\1\164\2\145\1\157\1\156\1\151\1\156\1\60\2\156\1\162\1\164\1\157\1\162\2\145\1\60\1\114\1\117\1\151\1\107\1\156\1\60\1\145\1\164\1\60\1\146\1\141\1\154\1\157\1\60\1\uffff\1\145\1\151\1\144\1\164\1\145\2\114\1\162\1\151\2\145\1\106\1\156\1\103\1\164\1\101\1\151\1\157\2\151\1\163\2\uffff\1\167\1\101\1\165\1\104\1\145\1\60\1\104\1\165\1\157\1\162\1\160\1\157\1\101\2\60\2\157\1\145\1\165\1\147\1\163\2\162\1\164\1\uffff\1\151\1\157\1\162\1\145\1\151\1\143\1\162\1\143\1\147\1\157\1\147\1\60\1\uffff\1\143\1\146\1\141\1\162\1\156\1\157\1\162\1\60\1\uffff\1\145\1\156\1\157\1\165\1\163\1\uffff\1\60\1\145\1\141\1\uffff\2\164\1\141\1\156\1\uffff\1\164\1\144\1\156\1\102\1\60\1\123\1\145\1\151\1\122\1\164\1\141\1\164\1\141\1\120\1\163\1\165\1\60\1\157\1\60\1\143\1\157\1\156\2\166\2\60\1\124\1\162\1\165\1\156\1\uffff\2\157\1\163\1\143\1\151\1\157\1\165\1\143\2\uffff\2\156\1\60\1\162\1\102\1\60\1\146\1\145\1\120\1\157\1\167\1\153\1\143\1\157\1\60\1\123\1\145\1\164\1\156\1\102\1\156\1\uffff\1\145\1\162\1\146\1\165\1\146\1\164\1\101\1\uffff\1\156\1\60\1\156\1\141\1\60\1\uffff\1\60\1\171\1\167\1\151\1\156\1\154\1\167\1\145\1\153\1\171\1\uffff\1\160\1\60\1\145\1\164\1\144\1\156\1\145\1\141\1\171\1\145\1\164\1\145\1\60\1\156\1\uffff\1\155\1\uffff\1\164\1\156\1\60\2\145\2\uffff\1\60\1\141\1\162\1\147\1\165\1\156\1\106\1\157\1\141\1\163\1\162\1\164\2\60\1\uffff\1\143\2\141\1\uffff\1\123\1\163\1\141\1\156\1\60\1\154\1\60\1\156\1\uffff\1\145\1\163\1\150\1\104\2\141\1\144\1\60\1\141\1\146\1\143\1\151\1\157\1\141\1\154\1\147\1\uffff\1\101\1\162\2\uffff\1\145\1\141\1\157\2\145\1\157\3\60\1\145\1\uffff\1\146\1\167\1\145\1\153\1\160\1\143\1\145\1\144\1\145\1\162\1\uffff\1\143\1\160\1\151\1\60\1\uffff\1\116\1\156\1\uffff\1\164\1\141\1\164\1\142\1\147\1\165\1\154\1\142\1\151\1\143\1\151\2\uffff\1\145\1\164\1\156\1\160\1\163\1\162\1\163\1\uffff\1\157\1\uffff\1\60\1\143\1\163\1\60\1\145\1\164\1\156\1\123\1\uffff\1\163\1\151\1\164\1\147\1\143\1\155\2\164\1\157\1\144\1\141\2\162\1\156\1\60\1\163\1\162\1\uffff\1\145\2\uffff\1\145\1\60\1\157\2\60\1\157\1\153\1\162\1\102\1\116\1\146\1\164\2\157\1\uffff\1\141\1\102\1\151\1\164\1\150\1\154\1\126\1\156\1\123\1\154\1\164\1\145\1\157\1\163\1\145\1\144\1\145\1\60\1\141\1\60\1\141\1\uffff\1\60\1\151\1\uffff\1\154\1\145\1\144\2\164\1\143\2\165\1\157\1\145\1\116\1\150\1\146\1\144\1\156\1\163\1\145\1\60\1\uffff\1\163\1\153\1\162\1\144\1\uffff\1\162\1\uffff\1\145\1\uffff\1\163\2\60\1\141\1\157\1\123\1\151\2\156\1\155\1\171\1\157\1\151\1\60\1\145\1\141\1\143\1\164\1\145\1\157\1\60\1\156\1\60\1\156\1\167\1\143\1\uffff\1\155\1\uffff\1\144\1\uffff\1\156\1\141\1\156\1\167\1\141\1\162\1\60\2\162\1\154\1\60\1\141\1\60\1\164\1\162\1\164\1\104\1\103\1\uffff\1\60\1\111\1\146\1\60\1\153\1\162\1\151\2\uffff\1\156\1\144\1\160\1\157\1\145\1\60\1\145\1\60\1\156\1\157\1\uffff\1\126\1\162\1\164\1\141\1\60\1\162\1\uffff\1\60\1\uffff\1\143\1\151\3\60\1\147\1\171\1\143\1\151\1\143\1\165\1\uffff\1\145\1\141\1\60\1\uffff\1\155\1\uffff\1\167\3\145\1\157\1\uffff\1\156\1\123\1\uffff\1\111\1\146\1\164\1\144\2\145\2\156\1\uffff\1\163\1\uffff\1\60\1\156\1\141\2\151\1\143\1\uffff\1\171\1\uffff\1\171\1\144\3\uffff\1\124\1\60\1\171\1\144\1\153\1\143\1\60\1\164\1\uffff\1\145\1\141\1\163\1\145\1\154\1\155\1\164\1\160\1\156\1\123\1\157\1\167\1\120\1\143\1\60\1\164\1\60\1\uffff\1\60\1\162\1\141\1\157\1\153\2\60\1\164\1\151\1\uffff\1\60\1\164\1\163\1\164\1\uffff\1\151\1\60\1\162\1\163\1\144\1\141\1\160\2\145\1\164\1\160\1\162\1\151\1\145\1\60\1\uffff\1\60\2\uffff\1\151\1\142\1\156\1\60\2\uffff\1\150\1\155\1\uffff\1\150\1\60\1\165\1\157\1\uffff\2\145\1\60\1\171\1\157\1\162\1\143\2\145\1\171\1\144\1\162\2\uffff\1\141\1\154\1\60\1\uffff\1\102\1\145\1\122\1\uffff\1\162\1\156\1\103\1\163\1\uffff\1\60\1\156\1\146\1\60\1\162\1\143\1\60\1\164\1\146\1\142\1\145\1\uffff\2\120\1\60\2\145\1\60\1\157\1\60\1\uffff\1\145\1\141\1\uffff\1\146\1\60\1\uffff\1\150\1\123\1\154\1\60\2\123\1\uffff\1\161\1\60\1\uffff\1\155\1\uffff\1\156\1\143\1\141\1\uffff\1\60\1\160\1\145\1\uffff\2\60\1\120\1\uffff\1\160\1\164\1\145\1\143\1\uffff\1\145\1\60\2\uffff\1\123\1\157\2\60\1\145\1\143\1\uffff\1\60\1\156\1\uffff\1\145\1\uffff\2\60\1\uffff\1\145\1\162\1\145\2\uffff\1\156\1\146\1\162\1\164\1\123\1\146\1\60\1\160\1\123\1\uffff\1\145\1\160\1\143\1\145\1\60\1\143\1\uffff\1\60\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\162\1\157\2\172\1\165\3\172\1\171\1\151\1\162\1\145\1\uffff\1\151\1\164\1\157\2\uffff\1\151\1\163\1\162\1\164\1\156\2\151\1\157\1\151\1\164\1\154\1\116\1\157\1\uffff\1\157\1\163\1\157\2\172\1\uffff\1\162\2\157\1\141\2\uffff\1\154\1\156\1\157\1\172\2\uffff\2\uffff\1\57\2\uffff\1\165\1\uffff\1\154\1\162\1\157\1\164\1\160\1\uffff\1\165\1\144\1\uffff\1\156\2\155\1\170\1\uffff\1\125\1\uffff\1\156\1\uffff\1\164\1\141\1\164\1\162\1\157\1\162\1\164\1\uffff\1\164\2\163\1\162\1\165\1\156\1\146\1\162\2\uffff\1\162\1\125\1\164\1\171\1\157\1\170\1\165\2\164\1\163\1\156\1\171\1\165\1\154\1\141\1\146\1\145\1\161\1\157\1\164\1\144\1\164\1\163\1\106\1\141\1\163\1\uffff\1\156\1\151\1\145\1\156\1\165\3\uffff\1\141\1\162\1\151\1\157\1\151\2\uffff\1\157\1\116\1\160\5\uffff\1\145\1\146\1\163\2\167\1\116\1\151\1\145\1\141\1\172\3\145\1\111\1\164\1\172\2\145\1\156\1\163\1\153\1\141\1\164\2\146\1\167\1\141\1\154\1\164\1\151\1\145\1\164\1\165\1\162\1\164\1\162\1\164\1\172\1\162\1\164\1\160\1\141\2\145\1\163\1\164\1\123\1\172\1\145\1\141\1\143\1\145\1\153\1\145\1\164\1\165\1\172\1\164\1\145\1\165\1\162\1\160\1\145\1\162\1\151\1\106\1\164\1\163\1\144\1\164\1\163\2\164\2\144\1\164\1\156\1\153\1\164\1\160\1\164\1\167\1\157\2\172\1\146\1\145\1\141\1\172\1\157\1\164\1\162\1\164\1\uffff\1\172\1\163\1\172\1\162\1\164\1\157\1\110\1\uffff\1\162\1\163\1\143\1\120\1\145\1\155\1\141\1\145\1\157\1\151\2\157\1\172\1\157\1\151\1\166\1\143\1\141\1\143\1\153\1\164\1\167\1\143\1\151\1\162\1\145\1\uffff\1\151\1\165\1\172\1\162\1\146\1\162\1\151\1\157\1\165\1\uffff\1\162\1\123\1\162\1\143\1\163\1\162\2\145\1\uffff\1\167\1\144\1\145\1\164\1\101\1\162\1\145\1\157\1\106\1\141\1\164\1\145\1\163\1\172\1\164\1\151\1\172\1\120\1\157\1\145\1\146\1\163\1\154\1\124\2\101\1\122\1\144\2\uffff\1\151\1\172\1\162\1\172\1\157\1\uffff\1\144\1\171\2\151\1\uffff\1\172\1\uffff\1\147\1\145\1\160\1\157\1\151\1\120\1\150\1\145\1\164\1\163\1\147\1\163\1\143\1\170\2\162\1\145\1\154\1\151\1\156\1\uffff\1\171\1\156\1\145\1\164\1\156\1\164\1\163\1\172\1\141\1\145\1\147\1\157\1\143\1\145\1\141\1\uffff\1\162\1\141\1\156\2\143\1\160\1\155\1\154\2\145\1\164\1\172\2\163\1\172\1\141\1\125\1\156\1\101\1\143\1\156\1\163\1\156\1\106\1\164\1\141\1\162\1\144\1\172\1\uffff\1\141\1\156\1\uffff\1\162\1\155\1\172\1\151\1\155\1\157\1\151\2\143\1\157\1\145\1\143\1\uffff\1\144\1\uffff\1\165\1\145\1\101\1\155\1\157\1\uffff\1\163\1\162\1\163\1\160\1\143\1\145\1\101\1\162\1\163\1\172\1\141\1\163\1\157\1\172\1\155\1\153\1\156\1\141\1\172\1\151\1\145\1\141\1\162\1\151\1\143\1\165\1\172\1\164\1\uffff\1\162\1\123\1\165\1\154\1\164\1\163\1\154\1\151\1\165\1\141\1\172\1\141\1\157\1\160\1\145\1\141\1\162\1\164\1\151\1\uffff\2\172\1\uffff\1\162\1\156\2\143\1\164\1\141\2\163\1\154\1\145\1\164\1\163\1\117\1\uffff\1\156\1\165\1\157\1\126\1\122\1\uffff\1\143\1\151\1\141\1\155\2\164\1\165\2\172\1\151\1\164\1\120\1\144\1\145\1\156\1\172\1\141\2\172\1\127\1\162\1\143\1\123\1\120\1\162\1\145\1\uffff\1\164\1\151\1\154\1\uffff\1\141\1\124\1\164\1\156\1\145\1\164\1\144\1\164\1\171\1\157\1\145\1\162\1\uffff\1\141\1\145\1\157\1\162\1\160\1\163\1\172\1\116\1\145\1\154\1\143\1\uffff\2\154\1\157\1\144\1\156\1\151\1\145\1\157\2\uffff\1\145\1\151\1\145\1\164\1\151\1\164\2\172\1\157\1\111\1\145\1\114\1\156\1\164\1\157\1\164\1\141\1\145\1\123\1\164\1\144\1\145\2\151\1\164\1\uffff\1\157\1\uffff\1\156\2\145\1\144\1\156\1\172\1\uffff\1\164\2\uffff\1\154\1\157\1\123\1\164\2\145\1\157\1\156\1\151\1\156\1\172\2\156\1\162\1\164\1\157\1\162\2\145\1\172\1\114\1\117\1\151\1\107\1\156\1\172\1\145\1\164\1\172\1\146\1\141\1\154\1\157\1\172\1\uffff\1\157\1\151\1\144\1\164\1\145\1\116\1\163\1\162\1\151\2\145\1\106\1\156\1\103\1\164\1\101\1\151\1\157\2\151\1\163\2\uffff\1\167\1\101\1\165\1\104\1\145\1\172\1\114\1\165\1\157\1\162\1\160\1\157\1\101\2\172\2\157\1\145\1\165\1\147\1\163\2\162\1\164\1\uffff\1\151\1\157\1\162\1\145\1\151\1\143\1\162\1\143\1\147\1\157\1\147\1\172\1\uffff\1\143\1\146\1\141\1\162\1\156\1\157\1\162\1\172\1\uffff\1\145\1\156\1\157\1\165\1\163\1\uffff\1\172\1\145\1\141\1\uffff\2\164\1\141\1\156\1\uffff\1\164\1\144\1\156\1\102\1\172\1\163\1\157\1\151\1\122\1\164\1\141\1\164\1\141\1\120\1\163\1\165\1\172\1\157\1\172\1\143\1\157\1\156\2\166\2\172\1\124\1\162\1\165\1\156\1\uffff\2\157\1\163\1\143\1\151\1\157\1\165\1\143\2\uffff\2\156\1\172\1\162\1\114\1\172\1\146\1\145\1\120\1\157\1\167\1\153\1\143\1\157\1\172\1\123\1\145\1\164\1\156\1\114\1\156\1\uffff\1\145\1\162\1\146\1\165\1\146\1\164\1\116\1\uffff\1\156\1\172\1\156\1\141\1\172\1\uffff\1\172\1\171\1\167\1\151\1\156\1\154\1\167\1\145\1\153\1\171\1\uffff\1\160\1\172\1\145\1\164\1\144\1\156\1\145\1\141\1\171\1\145\1\164\1\145\1\172\1\156\1\uffff\1\155\1\uffff\1\164\1\156\1\172\2\145\2\uffff\1\172\1\141\1\162\1\147\1\165\1\156\1\106\1\157\1\141\1\163\1\162\1\164\2\172\1\uffff\1\143\2\141\1\uffff\1\123\1\163\1\141\1\156\1\172\1\154\1\172\1\156\1\uffff\1\145\1\163\1\150\1\104\2\141\1\144\1\172\1\141\1\146\1\143\1\151\1\157\1\141\1\154\1\147\1\uffff\1\123\1\162\2\uffff\1\145\1\141\1\157\2\145\1\157\3\172\1\145\1\uffff\1\146\1\167\1\145\1\153\1\160\1\143\1\145\1\144\1\145\1\162\1\uffff\1\143\1\160\1\151\1\172\1\uffff\1\116\1\156\1\uffff\1\164\1\141\1\164\1\142\1\147\1\165\1\154\1\142\1\151\1\143\1\151\2\uffff\1\145\1\164\1\156\1\160\1\163\1\162\1\163\1\uffff\1\157\1\uffff\1\172\1\143\1\163\1\172\1\145\1\164\1\156\1\123\1\uffff\1\163\1\151\1\164\1\147\1\143\1\155\2\164\1\157\1\144\1\141\2\162\1\156\1\172\1\163\1\162\1\uffff\1\145\2\uffff\1\145\1\172\1\157\2\172\1\157\1\153\1\162\1\102\1\116\1\146\1\164\2\157\1\uffff\1\141\1\102\1\151\1\164\1\150\1\154\1\126\1\156\1\123\1\154\1\164\1\145\1\157\1\163\1\145\1\144\1\145\1\172\1\141\1\172\1\141\1\uffff\1\172\1\151\1\uffff\1\154\1\145\1\144\2\164\1\143\2\165\1\157\1\145\1\116\1\150\1\146\1\144\1\156\1\163\1\145\1\172\1\uffff\1\163\1\153\1\162\1\144\1\uffff\1\162\1\uffff\1\145\1\uffff\1\163\2\172\1\141\1\157\1\123\1\151\2\156\1\155\1\171\1\157\1\151\1\172\1\145\1\141\1\143\1\164\1\145\1\157\1\172\1\156\1\172\1\156\1\167\1\143\1\uffff\1\155\1\uffff\1\144\1\uffff\1\156\1\141\1\156\1\167\1\141\1\162\1\172\2\162\1\154\1\172\1\141\1\172\1\164\1\162\1\164\1\104\1\103\1\uffff\1\172\1\111\1\146\1\172\1\153\1\162\1\151\2\uffff\1\156\1\144\1\160\1\157\1\145\1\172\1\145\1\172\1\156\1\157\1\uffff\1\126\1\162\1\164\1\141\1\172\1\162\1\uffff\1\172\1\uffff\1\143\1\151\3\172\1\147\1\171\1\143\1\151\1\143\1\165\1\uffff\1\145\1\141\1\172\1\uffff\1\155\1\uffff\1\167\3\145\1\157\1\uffff\1\156\1\123\1\uffff\1\111\1\146\1\164\1\144\2\145\2\156\1\uffff\1\163\1\uffff\1\172\1\156\1\141\2\151\1\143\1\uffff\1\171\1\uffff\1\171\1\144\3\uffff\1\124\1\172\1\171\1\144\1\153\1\143\1\172\1\164\1\uffff\1\145\1\141\1\163\1\145\1\154\1\155\1\164\1\160\1\156\1\123\1\157\1\167\1\120\1\143\1\172\1\164\1\172\1\uffff\1\172\1\162\1\141\1\157\1\153\2\172\1\164\1\151\1\uffff\1\172\1\164\1\163\1\164\1\uffff\1\151\1\172\1\162\1\163\1\144\1\141\1\160\2\145\1\164\1\160\1\162\1\151\1\145\1\172\1\uffff\1\172\2\uffff\1\151\1\142\1\156\1\172\2\uffff\1\150\1\155\1\uffff\1\150\1\172\1\165\1\157\1\uffff\2\145\1\172\1\171\1\157\1\162\1\143\2\145\1\171\1\144\1\162\2\uffff\1\141\1\154\1\172\1\uffff\1\120\1\145\1\122\1\uffff\1\162\1\156\1\103\1\163\1\uffff\1\172\1\156\1\146\1\172\1\162\1\143\1\172\1\164\1\146\1\142\1\145\1\uffff\2\120\1\172\2\145\1\172\1\157\1\172\1\uffff\1\145\1\141\1\uffff\1\146\1\172\1\uffff\1\150\1\123\1\154\1\172\2\123\1\uffff\1\161\1\172\1\uffff\1\155\1\uffff\1\156\1\143\1\141\1\uffff\1\172\1\160\1\145\1\uffff\2\172\1\120\1\uffff\1\160\1\164\1\145\1\143\1\uffff\1\145\1\172\2\uffff\1\123\1\157\2\172\1\145\1\143\1\uffff\1\172\1\156\1\uffff\1\145\1\uffff\2\172\1\uffff\1\145\1\162\1\145\2\uffff\1\156\1\146\1\162\1\164\1\123\1\146\1\172\1\160\1\123\1\uffff\1\145\1\160\1\143\1\145\1\172\1\143\1\uffff\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\15\uffff\1\15\3\uffff\1\23\1\25\15\uffff\1\115\5\uffff\1\131\4\uffff\1\161\1\162\4\uffff\1\u0098\1\u0099\3\uffff\1\u009d\1\u009e\1\uffff\1\u0098\5\uffff\1\3\2\uffff\1\4\4\uffff\1\6\1\uffff\1\7\1\uffff\1\10\7\uffff\1\15\10\uffff\1\23\1\25\32\uffff\1\115\5\uffff\1\127\1\130\1\131\5\uffff\1\161\1\162\3\uffff\1\u0099\1\u009a\1\u009b\1\u009c\1\u009d\135\uffff\1\u0087\7\uffff\1\31\32\uffff\1\122\11\uffff\1\111\10\uffff\1\u008d\34\uffff\1\u008f\1\1\5\uffff\1\153\4\uffff\1\5\1\uffff\1\67\24\uffff\1\135\17\uffff\1\27\35\uffff\1\u0089\2\uffff\1\117\14\uffff\1\2\1\uffff\1\54\5\uffff\1\57\34\uffff\1\u0086\23\uffff\1\60\2\uffff\1\65\15\uffff\1\165\5\uffff\1\u0085\32\uffff\1\24\3\uffff\1\133\14\uffff\1\173\13\uffff\1\144\10\uffff\1\u0080\1\63\31\uffff\1\u008c\1\uffff\1\20\6\uffff\1\124\1\uffff\1\u0088\1\u0091\42\uffff\1\u0084\25\uffff\1\74\1\142\30\uffff\1\125\14\uffff\1\u0082\10\uffff\1\107\5\uffff\1\u008e\3\uffff\1\55\4\uffff\1\167\36\uffff\1\157\10\uffff\1\137\1\155\25\uffff\1\172\7\uffff\1\41\5\uffff\1\21\12\uffff\1\u0097\16\uffff\1\u008b\1\uffff\1\132\5\uffff\1\140\1\76\16\uffff\1\u008a\3\uffff\1\175\10\uffff\1\12\20\uffff\1\70\2\uffff\1\176\1\u0095\12\uffff\1\163\12\uffff\1\134\4\uffff\1\151\2\uffff\1\77\13\uffff\1\145\1\154\7\uffff\1\106\1\uffff\1\11\10\uffff\1\160\21\uffff\1\156\1\uffff\1\170\1\u0083\16\uffff\1\150\25\uffff\1\143\2\uffff\1\102\22\uffff\1\42\4\uffff\1\u0090\1\uffff\1\164\1\uffff\1\166\32\uffff\1\73\1\uffff\1\146\1\uffff\1\13\22\uffff\1\22\7\uffff\1\177\1\u0081\12\uffff\1\112\6\uffff\1\136\1\uffff\1\72\13\uffff\1\53\3\uffff\1\16\1\uffff\1\113\5\uffff\1\114\2\uffff\1\32\10\uffff\1\147\1\uffff\1\75\6\uffff\1\121\1\uffff\1\152\2\uffff\1\51\1\64\1\141\10\uffff\1\110\21\uffff\1\100\11\uffff\1\35\4\uffff\1\56\17\uffff\1\126\1\uffff\1\71\1\101\4\uffff\1\174\1\46\2\uffff\1\44\4\uffff\1\17\14\uffff\1\43\1\66\3\uffff\1\u0093\3\uffff\1\62\4\uffff\1\u0096\13\uffff\1\123\10\uffff\1\52\2\uffff\1\34\2\uffff\1\171\6\uffff\1\30\2\uffff\1\61\1\uffff\1\105\3\uffff\1\37\3\uffff\1\120\3\uffff\1\14\4\uffff\1\36\2\uffff\1\47\1\50\6\uffff\1\116\2\uffff\1\104\1\uffff\1\u0094\2\uffff\1\45\3\uffff\1\u0092\1\40\11\uffff\1\103\6\uffff\1\26\1\uffff\1\33";
+    static final String DFA12_specialS =
+        "\1\0\62\uffff\1\2\1\1\u0521\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\67\2\66\2\67\1\66\22\67\1\66\1\67\1\63\4\67\1\64\1\53\1\54\2\67\1\22\1\40\1\46\1\65\12\62\7\67\1\61\1\11\1\41\1\30\1\3\1\55\1\10\1\57\1\27\1\61\1\6\1\51\1\7\1\14\1\36\1\25\1\61\1\43\1\34\1\47\1\61\1\23\1\52\3\61\3\67\1\60\1\61\1\67\1\35\1\12\1\20\1\16\1\4\1\2\1\61\1\37\1\24\2\61\1\31\1\26\1\5\1\56\1\13\1\61\1\32\1\17\1\1\1\42\1\33\1\50\1\44\1\45\1\61\1\15\1\67\1\21\uff82\67",
+            "\1\70",
+            "\1\72\12\uffff\1\74\2\uffff\1\73",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\15\71\1\75\11\71\1\76\2\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\15\71\1\101\2\71\1\100\11\71",
+            "\1\104\3\uffff\1\106\11\uffff\1\103\5\uffff\1\105",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\23\71\1\110\6\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\4\71\1\112\25\71",
+            "\1\115\6\uffff\1\114",
+            "\1\116",
+            "\1\117\3\uffff\1\121\14\uffff\1\120",
+            "\1\122",
+            "",
+            "\1\124\3\uffff\1\125\3\uffff\1\126",
+            "\1\130\4\uffff\1\127",
+            "\1\133\2\uffff\1\132\12\uffff\1\131",
+            "",
+            "",
+            "\1\136",
+            "\1\140\4\uffff\1\137",
+            "\1\141\11\uffff\1\142",
+            "\1\143\22\uffff\1\144",
+            "\1\145",
+            "\1\146\7\uffff\1\147",
+            "\1\151\7\uffff\1\150",
+            "\1\152",
+            "\1\153\7\uffff\1\154",
+            "\1\157\11\uffff\1\155\1\156\3\uffff\1\160",
+            "\1\163\1\162\7\uffff\1\161",
+            "\1\165\7\uffff\1\164",
+            "\1\166\11\uffff\1\167",
+            "",
+            "\1\171",
+            "\1\172\4\uffff\1\173",
+            "\1\174\15\uffff\1\175",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0081",
+            "\1\u0083\15\uffff\1\u0082",
+            "\1\u0084",
+            "\1\u0085",
+            "",
+            "",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\0\u008c",
+            "\0\u008c",
+            "\1\u008d\4\uffff\1\u008e",
+            "",
+            "",
+            "\1\u0091\23\uffff\1\u0090",
+            "",
+            "\1\u0092",
+            "\1\u0093",
+            "\1\u0094",
+            "\1\u0095\17\uffff\1\u0096",
+            "\1\u0097",
+            "",
+            "\1\u0098",
+            "\1\u0099",
+            "",
+            "\1\u009b\11\uffff\1\u009a",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "",
+            "\1\u009f",
+            "",
+            "\1\u00a0",
+            "",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3",
+            "\1\u00a4\16\uffff\1\u00a5",
+            "\1\u00a7\11\uffff\1\u00a6",
+            "\1\u00a8",
+            "\1\u00a9",
+            "",
+            "\1\u00aa",
+            "\1\u00ad\3\uffff\1\u00ab\2\uffff\1\u00ac",
+            "\1\u00ae\1\u00af",
+            "\1\u00b1\20\uffff\1\u00b0",
+            "\1\u00b2\16\uffff\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "",
+            "",
+            "\1\u00b7",
+            "\1\u00b9\1\u00ba\20\uffff\1\u00b8",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c3\1\u00c2",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc\15\uffff\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1\43\uffff\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d6\2\uffff\1\u00d5",
+            "",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "",
+            "",
+            "",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "",
+            "",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1\6\uffff\1\u00f3\1\u00f2",
+            "\1\u00f4",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fd\14\uffff\1\u00fc\3\uffff\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109\16\uffff\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\u010d\7\uffff\1\u010f\5\uffff\1\u010e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138\7\uffff\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\12\71\7\uffff\21\71\1\u0146\10\71\4\uffff\1\71\1\uffff\22\71\1\u0145\7\71",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u014d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\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\u015b",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\12\71\7\uffff\2\71\1\u015f\17\71\1\u0161\1\71\1\u0162\5\71\4\uffff\1\71\1\uffff\17\71\1\u0160\12\71",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\u0170",
+            "",
+            "\1\u0171",
+            "\1\u0172",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\u0177",
+            "\1\u0178",
+            "\1\u0179",
+            "",
+            "\1\u017a",
+            "\1\u017b\2\uffff\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\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\u018e",
+            "\1\u018f\15\uffff\1\u0190",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0192",
+            "\1\u0193",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "",
+            "",
+            "\1\u01a0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01a2",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01a4",
+            "",
+            "\1\u01a5",
+            "\1\u01a6",
+            "\1\u01a7",
+            "\1\u01a8",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u01aa",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\u01b7",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\u01ba",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "",
+            "\1\u01be",
+            "\1\u01bf",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\12\71\7\uffff\22\71\1\u01c5\7\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\u01cd",
+            "",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0\7\uffff\1\u01d1",
+            "\1\u01d2",
+            "\1\u01d3",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6",
+            "\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01db",
+            "\1\u01dc",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u01de",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\1\u01e3",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u01ec",
+            "\1\u01ed",
+            "",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u01f0\7\71",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\1\u01f6",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "\1\u01fa",
+            "",
+            "\1\u01fb",
+            "",
+            "\1\u01fc",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\1\u01ff",
+            "\1\u0200",
+            "",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\u0203",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "\1\u0207",
+            "\1\u0208",
+            "\1\u020b\3\uffff\1\u020a\42\uffff\1\u0209",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0211",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u021e",
+            "",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
+            "\1\u0227",
+            "\1\u0228",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u022a",
+            "\1\u022b",
+            "\1\u022c",
+            "\1\u022d",
+            "\1\u022e",
+            "\1\u022f",
+            "\1\u0230",
+            "\1\u0231",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\1\u0237",
+            "\1\u0238",
+            "\1\u0239",
+            "\1\u023a",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\u0240",
+            "",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "",
+            "\1\u0246",
+            "\1\u0247",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\u024a",
+            "\1\u024b",
+            "\1\u024c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\22\71\1\u024e\7\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0250",
+            "\1\u0251",
+            "\1\u0252",
+            "\1\u0253",
+            "\1\u0254",
+            "\1\u0255",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0257",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u025a\20\uffff\1\u025b",
+            "\1\u025c",
+            "\1\u025d",
+            "\1\u025e",
+            "\1\u025f",
+            "\1\u0260",
+            "\1\u0261",
+            "",
+            "\1\u0262",
+            "\1\u0263",
+            "\1\u0264",
+            "",
+            "\1\u0265",
+            "\1\u0269\5\uffff\1\u0266\6\uffff\1\u026a\2\uffff\1\u0268\1\u0267",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\u026d",
+            "\1\u026e",
+            "\1\u026f",
+            "\1\u0270",
+            "\1\u0271",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\u0274",
+            "",
+            "\1\u0275",
+            "\1\u0276",
+            "\1\u0277",
+            "\1\u0278",
+            "\1\u0279",
+            "\1\u027a\11\uffff\1\u027b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u027e\1\uffff\1\u027d",
+            "\1\u027f",
+            "\1\u0280",
+            "\1\u0281",
+            "",
+            "\1\u0282",
+            "\1\u0283",
+            "\1\u0284",
+            "\1\u0285",
+            "\1\u0286",
+            "\1\u0287",
+            "\1\u0288",
+            "\1\u0289",
+            "",
+            "",
+            "\1\u028a",
+            "\1\u028b",
+            "\1\u028c",
+            "\1\u028d",
+            "\1\u028e",
+            "\1\u028f",
+            "\12\71\7\uffff\6\71\1\u0290\23\71\4\uffff\1\71\1\uffff\4\71\1\u0291\25\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0294",
+            "\1\u0296\4\uffff\1\u0295",
+            "\1\u0297",
+            "\1\u0298",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "\1\u029d",
+            "\1\u029e",
+            "\1\u029f",
+            "\1\u02a0",
+            "\1\u02a1",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\u02a5",
+            "",
+            "\1\u02a6",
+            "",
+            "\1\u02a7",
+            "\1\u02a8",
+            "\1\u02a9",
+            "\1\u02aa",
+            "\1\u02ab",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u02ad",
+            "",
+            "",
+            "\1\u02ae",
+            "\1\u02af",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "\1\u02b3",
+            "\1\u02b4",
+            "\1\u02b5",
+            "\1\u02b6",
+            "\1\u02b7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\22\71\1\u02b8\7\71",
+            "\1\u02ba",
+            "\1\u02bb",
+            "\1\u02bc",
+            "\1\u02bd",
+            "\1\u02be",
+            "\1\u02bf",
+            "\1\u02c0",
+            "\1\u02c1",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c3",
+            "\1\u02c4",
+            "\1\u02c5",
+            "\1\u02c6",
+            "\1\u02c7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02c9",
+            "\1\u02ca",
+            "\12\71\7\uffff\13\71\1\u02cb\16\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02cd",
+            "\1\u02ce",
+            "\1\u02cf",
+            "\1\u02d0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u02d2\11\uffff\1\u02d3",
+            "\1\u02d4",
+            "\1\u02d5",
+            "\1\u02d6",
+            "\1\u02d7",
+            "\1\u02d9\1\uffff\1\u02d8",
+            "\1\u02dc\6\uffff\1\u02db\37\uffff\1\u02da",
+            "\1\u02dd",
+            "\1\u02de",
+            "\1\u02df",
+            "\1\u02e0",
+            "\1\u02e1",
+            "\1\u02e2",
+            "\1\u02e3",
+            "\1\u02e4",
+            "\1\u02e5",
+            "\1\u02e6",
+            "\1\u02e7",
+            "\1\u02e8",
+            "\1\u02e9",
+            "\1\u02ea",
+            "",
+            "",
+            "\1\u02eb",
+            "\1\u02ec",
+            "\1\u02ed",
+            "\1\u02ee",
+            "\1\u02ef",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02f1\7\uffff\1\u02f2",
+            "\1\u02f3",
+            "\1\u02f4",
+            "\1\u02f5",
+            "\1\u02f6",
+            "\1\u02f7",
+            "\1\u02f8",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u02fb",
+            "\1\u02fc",
+            "\1\u02fd",
+            "\1\u02fe",
+            "\1\u02ff",
+            "\1\u0300",
+            "\1\u0301",
+            "\1\u0302",
+            "\1\u0303",
+            "",
+            "\1\u0304",
+            "\1\u0305",
+            "\1\u0306",
+            "\1\u0307",
+            "\1\u0308",
+            "\1\u0309",
+            "\1\u030a",
+            "\1\u030b",
+            "\1\u030c",
+            "\1\u030d",
+            "\1\u030e",
+            "\12\71\7\uffff\1\u030f\31\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0311",
+            "\1\u0312",
+            "\1\u0313",
+            "\1\u0314",
+            "\1\u0315",
+            "\1\u0316",
+            "\1\u0317",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0319",
+            "\1\u031a",
+            "\1\u031b",
+            "\1\u031c",
+            "\1\u031d",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u031f",
+            "\1\u0320",
+            "",
+            "\1\u0321",
+            "\1\u0322",
+            "\1\u0323",
+            "\1\u0324",
+            "",
+            "\1\u0325",
+            "\1\u0326",
+            "\1\u0327",
+            "\1\u0328",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u032a\36\uffff\1\u032c\1\u032b",
+            "\1\u032d\11\uffff\1\u032e",
+            "\1\u032f",
+            "\1\u0330",
+            "\1\u0331",
+            "\1\u0332",
+            "\1\u0333",
+            "\1\u0334",
+            "\1\u0335",
+            "\1\u0336",
+            "\1\u0337",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0339",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u033b",
+            "\1\u033c",
+            "\1\u033d",
+            "\1\u033e",
+            "\1\u033f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0342",
+            "\1\u0343",
+            "\1\u0344",
+            "\1\u0345",
+            "",
+            "\1\u0346",
+            "\1\u0347",
+            "\1\u0348",
+            "\1\u0349",
+            "\1\u034a",
+            "\1\u034b",
+            "\1\u034c",
+            "\1\u034d",
+            "",
+            "",
+            "\1\u034e",
+            "\1\u034f",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0351",
+            "\1\u0353\11\uffff\1\u0352",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0355",
+            "\1\u0356",
+            "\1\u0357",
+            "\1\u0358",
+            "\1\u0359",
+            "\1\u035a",
+            "\1\u035b",
+            "\1\u035c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u035e",
+            "\1\u035f",
+            "\1\u0360",
+            "\1\u0361",
+            "\1\u0363\11\uffff\1\u0362",
+            "\1\u0364",
+            "",
+            "\1\u0365",
+            "\1\u0366",
+            "\1\u0367",
+            "\1\u0368",
+            "\1\u0369",
+            "\1\u036a",
+            "\1\u036c\14\uffff\1\u036b",
+            "",
+            "\1\u036d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u036f",
+            "\1\u0370",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0373",
+            "\1\u0374",
+            "\1\u0375",
+            "\1\u0376",
+            "\1\u0377",
+            "\1\u0378",
+            "\1\u0379",
+            "\1\u037a",
+            "\1\u037b",
+            "",
+            "\1\u037c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u037e",
+            "\1\u037f",
+            "\1\u0380",
+            "\1\u0381",
+            "\1\u0382",
+            "\1\u0383",
+            "\1\u0384",
+            "\1\u0385",
+            "\1\u0386",
+            "\1\u0387",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0389",
+            "",
+            "\1\u038a",
+            "",
+            "\1\u038b",
+            "\1\u038c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u038e",
+            "\1\u038f",
+            "",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0391",
+            "\1\u0392",
+            "\1\u0393",
+            "\1\u0394",
+            "\1\u0395",
+            "\1\u0396",
+            "\1\u0397",
+            "\1\u0398",
+            "\1\u0399",
+            "\1\u039a",
+            "\1\u039b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u039e",
+            "\1\u039f",
+            "\1\u03a0",
+            "",
+            "\1\u03a1",
+            "\1\u03a2",
+            "\1\u03a3",
+            "\1\u03a4",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03a6",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03a8",
+            "",
+            "\1\u03a9",
+            "\1\u03aa",
+            "\1\u03ab",
+            "\1\u03ac",
+            "\1\u03ad",
+            "\1\u03ae",
+            "\1\u03af",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03b1",
+            "\1\u03b2",
+            "\1\u03b3",
+            "\1\u03b4",
+            "\1\u03b5",
+            "\1\u03b6",
+            "\1\u03b7",
+            "\1\u03b8",
+            "",
+            "\1\u03ba\21\uffff\1\u03b9",
+            "\1\u03bb",
+            "",
+            "",
+            "\1\u03bc",
+            "\1\u03bd",
+            "\1\u03be",
+            "\1\u03bf",
+            "\1\u03c0",
+            "\1\u03c1",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\17\71\1\u03c3\12\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03c6",
+            "",
+            "\1\u03c7",
+            "\1\u03c8",
+            "\1\u03c9",
+            "\1\u03ca",
+            "\1\u03cb",
+            "\1\u03cc",
+            "\1\u03cd",
+            "\1\u03ce",
+            "\1\u03cf",
+            "\1\u03d0",
+            "",
+            "\1\u03d1",
+            "\1\u03d2",
+            "\1\u03d3",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u03d5",
+            "\1\u03d6",
+            "",
+            "\1\u03d7",
+            "\1\u03d8",
+            "\1\u03d9",
+            "\1\u03da",
+            "\1\u03db",
+            "\1\u03dc",
+            "\1\u03dd",
+            "\1\u03de",
+            "\1\u03df",
+            "\1\u03e0",
+            "\1\u03e1",
+            "",
+            "",
+            "\1\u03e2",
+            "\1\u03e3",
+            "\1\u03e4",
+            "\1\u03e5",
+            "\1\u03e6",
+            "\1\u03e7",
+            "\1\u03e8",
+            "",
+            "\1\u03e9",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03eb",
+            "\1\u03ec",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u03ee",
+            "\1\u03ef",
+            "\1\u03f0",
+            "\1\u03f1",
+            "",
+            "\1\u03f2",
+            "\1\u03f3",
+            "\1\u03f4",
+            "\1\u03f5",
+            "\1\u03f6",
+            "\1\u03f7",
+            "\1\u03f8",
+            "\1\u03f9",
+            "\1\u03fa",
+            "\1\u03fb",
+            "\1\u03fc",
+            "\1\u03fd",
+            "\1\u03fe",
+            "\1\u03ff",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0401",
+            "\1\u0402",
+            "",
+            "\1\u0403",
+            "",
+            "",
+            "\1\u0404",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0406",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\17\71\1\u0408\12\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u040a",
+            "\1\u040b",
+            "\1\u040c",
+            "\1\u040d",
+            "\1\u040e",
+            "\1\u040f",
+            "\1\u0410",
+            "\1\u0411",
+            "\1\u0412",
+            "",
+            "\1\u0413",
+            "\1\u0414",
+            "\1\u0415",
+            "\1\u0416",
+            "\1\u0417",
+            "\1\u0418",
+            "\1\u0419",
+            "\1\u041a",
+            "\1\u041b",
+            "\1\u041c",
+            "\1\u041d",
+            "\1\u041e",
+            "\1\u041f",
+            "\1\u0420",
+            "\1\u0421",
+            "\1\u0422",
+            "\1\u0423",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0425",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0427",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0429",
+            "",
+            "\1\u042a",
+            "\1\u042b",
+            "\1\u042c",
+            "\1\u042d",
+            "\1\u042e",
+            "\1\u042f",
+            "\1\u0430",
+            "\1\u0431",
+            "\1\u0432",
+            "\1\u0433",
+            "\1\u0434",
+            "\1\u0435",
+            "\1\u0436",
+            "\1\u0437",
+            "\1\u0438",
+            "\1\u0439",
+            "\1\u043a",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u043c",
+            "\1\u043d",
+            "\1\u043e",
+            "\1\u043f",
+            "",
+            "\1\u0440",
+            "",
+            "\1\u0441",
+            "",
+            "\1\u0442",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0445",
+            "\1\u0446",
+            "\1\u0447",
+            "\1\u0448",
+            "\1\u0449",
+            "\1\u044a",
+            "\1\u044b",
+            "\1\u044c",
+            "\1\u044d",
+            "\1\u044e",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0450",
+            "\1\u0451",
+            "\1\u0452",
+            "\1\u0453",
+            "\1\u0454",
+            "\1\u0455",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0457",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0459",
+            "\1\u045a",
+            "\1\u045b",
+            "",
+            "\1\u045c",
+            "",
+            "\1\u045d",
+            "",
+            "\1\u045e",
+            "\1\u045f",
+            "\1\u0460",
+            "\1\u0461",
+            "\1\u0462",
+            "\1\u0463",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0465",
+            "\1\u0466",
+            "\1\u0467",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0469",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u046b",
+            "\1\u046c",
+            "\1\u046d",
+            "\1\u046e",
+            "\1\u046f",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0471",
+            "\1\u0472",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0474",
+            "\1\u0475",
+            "\1\u0476",
+            "",
+            "",
+            "\1\u0477",
+            "\1\u0478",
+            "\1\u0479",
+            "\1\u047a",
+            "\1\u047b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u047d",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u047f",
+            "\1\u0480",
+            "",
+            "\1\u0481",
+            "\1\u0482",
+            "\1\u0483",
+            "\1\u0484",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0486",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0488",
+            "\1\u0489",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u048d",
+            "\1\u048e",
+            "\1\u048f",
+            "\1\u0490",
+            "\1\u0491",
+            "\1\u0492",
+            "",
+            "\1\u0493",
+            "\1\u0494",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0496",
+            "",
+            "\1\u0497",
+            "\1\u0498",
+            "\1\u0499",
+            "\1\u049a",
+            "\1\u049b",
+            "",
+            "\1\u049c",
+            "\1\u049d",
+            "",
+            "\1\u049e",
+            "\1\u049f",
+            "\1\u04a0",
+            "\1\u04a1",
+            "\1\u04a2",
+            "\1\u04a3",
+            "\1\u04a4",
+            "\1\u04a5",
+            "",
+            "\1\u04a6",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04a8",
+            "\1\u04a9",
+            "\1\u04aa",
+            "\1\u04ab",
+            "\1\u04ac",
+            "",
+            "\1\u04ad",
+            "",
+            "\1\u04ae",
+            "\1\u04af",
+            "",
+            "",
+            "",
+            "\1\u04b0",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04b2",
+            "\1\u04b3",
+            "\1\u04b4",
+            "\1\u04b5",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04b7",
+            "",
+            "\1\u04b8",
+            "\1\u04b9",
+            "\1\u04ba",
+            "\1\u04bb",
+            "\1\u04bc",
+            "\1\u04bd",
+            "\1\u04be",
+            "\1\u04bf",
+            "\1\u04c0",
+            "\1\u04c1",
+            "\1\u04c2",
+            "\1\u04c3",
+            "\1\u04c4",
+            "\1\u04c5",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04c7",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04ca",
+            "\1\u04cb",
+            "\1\u04cc",
+            "\1\u04cd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04d0",
+            "\1\u04d1",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04d3",
+            "\1\u04d4",
+            "\1\u04d5",
+            "",
+            "\1\u04d6",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04d8",
+            "\1\u04d9",
+            "\1\u04da",
+            "\1\u04db",
+            "\1\u04dc",
+            "\1\u04dd",
+            "\1\u04de",
+            "\1\u04df",
+            "\1\u04e0",
+            "\1\u04e1",
+            "\1\u04e2",
+            "\1\u04e3",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u04e6",
+            "\1\u04e7",
+            "\1\u04e8",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u04ea",
+            "\1\u04eb",
+            "",
+            "\1\u04ec",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04ee",
+            "\1\u04ef",
+            "",
+            "\1\u04f0",
+            "\1\u04f1",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u04f3",
+            "\1\u04f4",
+            "\1\u04f5",
+            "\1\u04f6",
+            "\1\u04f7",
+            "\1\u04f8",
+            "\1\u04f9",
+            "\1\u04fa",
+            "\1\u04fb",
+            "",
+            "",
+            "\1\u04fc",
+            "\1\u04fd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0500\15\uffff\1\u04ff",
+            "\1\u0501",
+            "\1\u0502",
+            "",
+            "\1\u0503",
+            "\1\u0504",
+            "\1\u0505",
+            "\1\u0506",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0508",
+            "\1\u0509",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u050b",
+            "\1\u050c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u050e",
+            "\1\u050f",
+            "\1\u0510",
+            "\1\u0511",
+            "",
+            "\1\u0512",
+            "\1\u0513",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0515",
+            "\1\u0516",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0518",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u051a",
+            "\1\u051b",
+            "",
+            "\1\u051c",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u051e",
+            "\1\u051f",
+            "\1\u0520",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0522",
+            "\1\u0523",
+            "",
+            "\1\u0524",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0526",
+            "",
+            "\1\u0527",
+            "\1\u0528",
+            "\1\u0529",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u052b",
+            "\1\u052c",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u052f",
+            "",
+            "\1\u0530",
+            "\1\u0531",
+            "\1\u0532",
+            "\1\u0533",
+            "",
+            "\1\u0534",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u0536",
+            "\1\u0537",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\17\71\1\u0539\12\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u053b",
+            "\1\u053c",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u053e",
+            "",
+            "\1\u053f",
+            "",
+            "\12\71\7\uffff\17\71\1\u0540\12\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "\1\u0543",
+            "\1\u0544",
+            "\1\u0545",
+            "",
+            "",
+            "\1\u0546",
+            "\1\u0547",
+            "\1\u0548",
+            "\1\u0549",
+            "\1\u054a",
+            "\1\u054b",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u054d",
+            "\1\u054e",
+            "",
+            "\1\u054f",
+            "\1\u0550",
+            "\1\u0551",
+            "\1\u0552",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0554",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    static class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            IntStream input = _input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='t') ) {s = 1;}
+
+                        else if ( (LA12_0=='f') ) {s = 2;}
+
+                        else if ( (LA12_0=='E') ) {s = 3;}
+
+                        else if ( (LA12_0=='e') ) {s = 4;}
+
+                        else if ( (LA12_0=='n') ) {s = 5;}
+
+                        else if ( (LA12_0=='K') ) {s = 6;}
+
+                        else if ( (LA12_0=='M') ) {s = 7;}
+
+                        else if ( (LA12_0=='G') ) {s = 8;}
+
+                        else if ( (LA12_0=='B') ) {s = 9;}
+
+                        else if ( (LA12_0=='b') ) {s = 10;}
+
+                        else if ( (LA12_0=='p') ) {s = 11;}
+
+                        else if ( (LA12_0=='N') ) {s = 12;}
+
+                        else if ( (LA12_0=='{') ) {s = 13;}
+
+                        else if ( (LA12_0=='d') ) {s = 14;}
+
+                        else if ( (LA12_0=='s') ) {s = 15;}
+
+                        else if ( (LA12_0=='c') ) {s = 16;}
+
+                        else if ( (LA12_0=='}') ) {s = 17;}
+
+                        else if ( (LA12_0==',') ) {s = 18;}
+
+                        else if ( (LA12_0=='V') ) {s = 19;}
+
+                        else if ( (LA12_0=='i') ) {s = 20;}
+
+                        else if ( (LA12_0=='P') ) {s = 21;}
+
+                        else if ( (LA12_0=='m') ) {s = 22;}
+
+                        else if ( (LA12_0=='I') ) {s = 23;}
+
+                        else if ( (LA12_0=='D') ) {s = 24;}
+
+                        else if ( (LA12_0=='l') ) {s = 25;}
+
+                        else if ( (LA12_0=='r') ) {s = 26;}
+
+                        else if ( (LA12_0=='v') ) {s = 27;}
+
+                        else if ( (LA12_0=='S') ) {s = 28;}
+
+                        else if ( (LA12_0=='a') ) {s = 29;}
+
+                        else if ( (LA12_0=='O') ) {s = 30;}
+
+                        else if ( (LA12_0=='h') ) {s = 31;}
+
+                        else if ( (LA12_0=='-') ) {s = 32;}
+
+                        else if ( (LA12_0=='C') ) {s = 33;}
+
+                        else if ( (LA12_0=='u') ) {s = 34;}
+
+                        else if ( (LA12_0=='R') ) {s = 35;}
+
+                        else if ( (LA12_0=='x') ) {s = 36;}
+
+                        else if ( (LA12_0=='y') ) {s = 37;}
+
+                        else if ( (LA12_0=='.') ) {s = 38;}
+
+                        else if ( (LA12_0=='T') ) {s = 39;}
+
+                        else if ( (LA12_0=='w') ) {s = 40;}
+
+                        else if ( (LA12_0=='L') ) {s = 41;}
+
+                        else if ( (LA12_0=='W') ) {s = 42;}
+
+                        else if ( (LA12_0=='(') ) {s = 43;}
+
+                        else if ( (LA12_0==')') ) {s = 44;}
+
+                        else if ( (LA12_0=='F') ) {s = 45;}
+
+                        else if ( (LA12_0=='o') ) {s = 46;}
+
+                        else if ( (LA12_0=='H') ) {s = 47;}
+
+                        else if ( (LA12_0=='^') ) {s = 48;}
+
+                        else if ( (LA12_0=='A'||LA12_0=='J'||LA12_0=='Q'||LA12_0=='U'||(LA12_0>='X' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='g'||(LA12_0>='j' && LA12_0<='k')||LA12_0=='q'||LA12_0=='z') ) {s = 49;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 50;}
+
+                        else if ( (LA12_0=='\"') ) {s = 51;}
+
+                        else if ( (LA12_0=='\'') ) {s = 52;}
+
+                        else if ( (LA12_0=='/') ) {s = 53;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 54;}
+
+                        else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>=':' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 55;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_52 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_52>='\u0000' && LA12_52<='\uFFFF')) ) {s = 140;}
+
+                        else s = 55;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_51 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_51>='\u0000' && LA12_51<='\uFFFF')) ) {s = 140;}
+
+                        else s = 55;
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 12, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
\ No newline at end of file
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7426f136d0083ec04e3f378c4632016d61d381f
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNITextParser.java
@@ -0,0 +1,82618 @@
+package tools.descatres.dml.dni.text.ui.contentassist.antlr.internal; 
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import tools.descatres.dml.dni.text.services.DNITextGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalDNITextParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'true'", "'false'", "'E'", "'e'", "'none'", "'K'", "'M'", "'G'", "'BytesPerSec'", "'bitsPerSec'", "'packetsPerSec'", "'NetworkInfrastructure'", "'{'", "'dataCenterName'", "'dataCenterAltName'", "'traffic'", "'structure'", "'configuration'", "'}'", "'params'", "','", "'VirtualNetworkInterfacePerfSpec'", "'isUp'", "'packetProcessingTime'", "'MTU'", "'interfaceSpeed'", "'PhysicalNetworkInterfacePerfSpec'", "'VirtualLinkPerfSpec'", "'propagationDelay'", "'maxSupportedBandwidth'", "'PhysicalLinkPerfSpec'", "'IntermediateNodePerfSpec'", "'dataplane'", "'controlplane'", "'DataPlanePerfSpec'", "'processingLatency'", "'processingBandwidthReqPS'", "'forwardingLatency'", "'forwardingBandwidthPPS'", "'forwardingBandwidthBPS'", "'EndNodePerfSpec'", "'softwareLayersDelay'", "'NetworkTraffic'", "'flows'", "'software'", "'NetworkStructure'", "'nodes'", "'links'", "'NetworkConfiguration'", "'protocolsAndStacks'", "'routes'", "'ExperimentParam'", "'value'", "'SoftwareComponent'", "'name'", "'deployedOn'", "'alternativeNames'", "'trafficSources'", "'EntityAddress'", "'address'", "'addressGivenBy'", "'ONOFFFlow'", "'ONstateIAT'", "'ONstateDuration'", "'OFFstateDuration'", "'packetLength'", "'destinationSoftwareComponent'", "'sourceSoftwareComponent'", "'destinationAddresses'", "'GenericFlow'", "'dataSize'", "'NetworkProtocol'", "'mtu'", "'headersLength'", "'dataUnitLength'", "'connectionless'", "'-'", "'ConstantDoubleVariable'", "'unit'", "'ConstantLongVariable'", "'RandomVariable'", "'cdf'", "'ContinuousFunction'", "'numArgs'", "'equation'", "'DiscreteFunction'", "'x'", "'y'", "'.'", "'SpeedUnit'", "'prefix'", "'DataSeries'", "'data'", "'TrafficSource'", "'workload'", "'addresses'", "'GenericWorkload'", "'actions'", "'BranchAction'", "'intern'", "'LoopAction'", "'numIterations'", "'SequenceAction'", "'StartAction'", "'StopAction'", "'TransmitAction'", "'flow'", "'WaitAction'", "'waitTime'", "'VirtualNode'", "'hostedOn'", "'performance'", "'('", "')'", "'interfaces'", "'PhysicalNode'", "'hosts'", "'PhysicalLink'", "'connects'", "'VirtualLink'", "'ProtocolsRepository'", "'protocols'", "'stacks'", "'RoutesRepository'", "'flowRoutes'", "'directions'", "'ProtocolStack'", "'layers'", "'ProtocolLayer'", "'protocol'", "'isCarriedBy'", "'carries'", "'Route'", "'start'", "'end'", "'numHops'", "'hops'", "'FlowRoute'", "'Direction'", "'onNode'", "'via'", "'distance'", "'Hop'", "'interfaceref'", "'nextHop'", "'PhysicalNetworkInterface'", "'usedProtocolStack'", "'VirtualNetworkInterface'", "'startState'", "'deliveryGuaranteed'", "'isDefault'"
+    };
+    public static final int RULE_ID=5;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__159=159;
+    public static final int T__27=27;
+    public static final int T__158=158;
+    public static final int T__26=26;
+    public static final int T__25=25;
+    public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=10;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int T__160=160;
+    public static final int EOF=-1;
+    public static final int T__161=161;
+    public static final int T__93=93;
+    public static final int T__19=19;
+    public static final int T__94=94;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__148=148;
+    public static final int T__16=16;
+    public static final int T__147=147;
+    public static final int T__15=15;
+    public static final int T__90=90;
+    public static final int T__18=18;
+    public static final int T__149=149;
+    public static final int T__17=17;
+    public static final int T__12=12;
+    public static final int T__11=11;
+    public static final int T__14=14;
+    public static final int T__13=13;
+    public static final int T__154=154;
+    public static final int T__155=155;
+    public static final int T__156=156;
+    public static final int T__157=157;
+    public static final int T__99=99;
+    public static final int T__150=150;
+    public static final int T__98=98;
+    public static final int T__151=151;
+    public static final int T__97=97;
+    public static final int T__152=152;
+    public static final int T__96=96;
+    public static final int T__153=153;
+    public static final int T__95=95;
+    public static final int T__139=139;
+    public static final int T__138=138;
+    public static final int T__137=137;
+    public static final int T__136=136;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__141=141;
+    public static final int T__85=85;
+    public static final int T__142=142;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__140=140;
+    public static final int T__86=86;
+    public static final int T__145=145;
+    public static final int T__89=89;
+    public static final int T__146=146;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=7;
+    public static final int T__143=143;
+    public static final int T__144=144;
+    public static final int T__126=126;
+    public static final int T__125=125;
+    public static final int T__128=128;
+    public static final int RULE_STRING=4;
+    public static final int T__127=127;
+    public static final int T__71=71;
+    public static final int T__129=129;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__130=130;
+    public static final int T__74=74;
+    public static final int T__131=131;
+    public static final int T__73=73;
+    public static final int T__132=132;
+    public static final int T__133=133;
+    public static final int T__79=79;
+    public static final int T__134=134;
+    public static final int T__78=78;
+    public static final int T__135=135;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__118=118;
+    public static final int T__119=119;
+    public static final int T__116=116;
+    public static final int T__117=117;
+    public static final int T__114=114;
+    public static final int T__115=115;
+    public static final int T__124=124;
+    public static final int T__123=123;
+    public static final int T__122=122;
+    public static final int T__121=121;
+    public static final int T__120=120;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__107=107;
+    public static final int T__108=108;
+    public static final int T__109=109;
+    public static final int T__103=103;
+    public static final int T__59=59;
+    public static final int T__104=104;
+    public static final int T__105=105;
+    public static final int T__106=106;
+    public static final int T__111=111;
+    public static final int T__110=110;
+    public static final int RULE_INT=6;
+    public static final int T__113=113;
+    public static final int T__112=112;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__102=102;
+    public static final int T__101=101;
+    public static final int T__100=100;
+    public static final int RULE_SL_COMMENT=8;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=9;
+
+    // delegates
+    // delegators
+
+
+        public InternalDNITextParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalDNITextParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalDNITextParser.tokenNames; }
+    public String getGrammarFileName() { return "../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g"; }
+
+
+     
+     	private DNITextGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(DNITextGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleNetworkInfrastructure"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:60:1: entryRuleNetworkInfrastructure : ruleNetworkInfrastructure EOF ;
+    public final void entryRuleNetworkInfrastructure() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:61:1: ( ruleNetworkInfrastructure EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:62:1: ruleNetworkInfrastructure EOF
+            {
+             before(grammarAccess.getNetworkInfrastructureRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkInfrastructure_in_entryRuleNetworkInfrastructure61);
+            ruleNetworkInfrastructure();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkInfrastructure68); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkInfrastructure"
+
+
+    // $ANTLR start "ruleNetworkInfrastructure"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:69:1: ruleNetworkInfrastructure : ( ( rule__NetworkInfrastructure__Group__0 ) ) ;
+    public final void ruleNetworkInfrastructure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:73:2: ( ( ( rule__NetworkInfrastructure__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:74:1: ( ( rule__NetworkInfrastructure__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:74:1: ( ( rule__NetworkInfrastructure__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:75:1: ( rule__NetworkInfrastructure__Group__0 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:76:1: ( rule__NetworkInfrastructure__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:76:2: rule__NetworkInfrastructure__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__0_in_ruleNetworkInfrastructure94);
+            rule__NetworkInfrastructure__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkInfrastructure"
+
+
+    // $ANTLR start "entryRuleFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:88:1: entryRuleFlow : ruleFlow EOF ;
+    public final void entryRuleFlow() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:89:1: ( ruleFlow EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:90:1: ruleFlow EOF
+            {
+             before(grammarAccess.getFlowRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleFlow_in_entryRuleFlow121);
+            ruleFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleFlow128); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlow"
+
+
+    // $ANTLR start "ruleFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:97:1: ruleFlow : ( ( rule__Flow__Alternatives ) ) ;
+    public final void ruleFlow() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:101:2: ( ( ( rule__Flow__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:102:1: ( ( rule__Flow__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:102:1: ( ( rule__Flow__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:103:1: ( rule__Flow__Alternatives )
+            {
+             before(grammarAccess.getFlowAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:104:1: ( rule__Flow__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:104:2: rule__Flow__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Flow__Alternatives_in_ruleFlow154);
+            rule__Flow__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlow"
+
+
+    // $ANTLR start "entryRuleNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:116:1: entryRuleNode : ruleNode EOF ;
+    public final void entryRuleNode() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:117:1: ( ruleNode EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:118:1: ruleNode EOF
+            {
+             before(grammarAccess.getNodeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNode_in_entryRuleNode181);
+            ruleNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getNodeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNode188); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNode"
+
+
+    // $ANTLR start "ruleNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:125:1: ruleNode : ( ( rule__Node__Alternatives ) ) ;
+    public final void ruleNode() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:129:2: ( ( ( rule__Node__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:130:1: ( ( rule__Node__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:130:1: ( ( rule__Node__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:131:1: ( rule__Node__Alternatives )
+            {
+             before(grammarAccess.getNodeAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:132:1: ( rule__Node__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:132:2: rule__Node__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Node__Alternatives_in_ruleNode214);
+            rule__Node__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNodeAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNode"
+
+
+    // $ANTLR start "entryRuleLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:144:1: entryRuleLink : ruleLink EOF ;
+    public final void entryRuleLink() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:145:1: ( ruleLink EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:146:1: ruleLink EOF
+            {
+             before(grammarAccess.getLinkRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLink_in_entryRuleLink241);
+            ruleLink();
+
+            state._fsp--;
+
+             after(grammarAccess.getLinkRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLink248); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLink"
+
+
+    // $ANTLR start "ruleLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:153:1: ruleLink : ( ( rule__Link__Alternatives ) ) ;
+    public final void ruleLink() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:157:2: ( ( ( rule__Link__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:158:1: ( ( rule__Link__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:158:1: ( ( rule__Link__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:159:1: ( rule__Link__Alternatives )
+            {
+             before(grammarAccess.getLinkAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:160:1: ( rule__Link__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:160:2: rule__Link__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Link__Alternatives_in_ruleLink274);
+            rule__Link__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLinkAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLink"
+
+
+    // $ANTLR start "entryRuleDependency"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:172:1: entryRuleDependency : ruleDependency EOF ;
+    public final void entryRuleDependency() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:173:1: ( ruleDependency EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:174:1: ruleDependency EOF
+            {
+             before(grammarAccess.getDependencyRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDependency_in_entryRuleDependency301);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getDependencyRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDependency308); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDependency"
+
+
+    // $ANTLR start "ruleDependency"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:181:1: ruleDependency : ( ( rule__Dependency__Alternatives ) ) ;
+    public final void ruleDependency() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:185:2: ( ( ( rule__Dependency__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:186:1: ( ( rule__Dependency__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:186:1: ( ( rule__Dependency__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:187:1: ( rule__Dependency__Alternatives )
+            {
+             before(grammarAccess.getDependencyAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:188:1: ( rule__Dependency__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:188:2: rule__Dependency__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Dependency__Alternatives_in_ruleDependency334);
+            rule__Dependency__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDependencyAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDependency"
+
+
+    // $ANTLR start "entryRuleDNIUnit"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:200:1: entryRuleDNIUnit : ruleDNIUnit EOF ;
+    public final void entryRuleDNIUnit() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:201:1: ( ruleDNIUnit EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:202:1: ruleDNIUnit EOF
+            {
+             before(grammarAccess.getDNIUnitRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDNIUnit_in_entryRuleDNIUnit361);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getDNIUnitRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDNIUnit368); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDNIUnit"
+
+
+    // $ANTLR start "ruleDNIUnit"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:209:1: ruleDNIUnit : ( ruleSpeedUnit ) ;
+    public final void ruleDNIUnit() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:213:2: ( ( ruleSpeedUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:214:1: ( ruleSpeedUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:214:1: ( ruleSpeedUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:215:1: ruleSpeedUnit
+            {
+             before(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSpeedUnit_in_ruleDNIUnit394);
+            ruleSpeedUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getDNIUnitAccess().getSpeedUnitParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDNIUnit"
+
+
+    // $ANTLR start "entryRuleFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:228:1: entryRuleFunction : ruleFunction EOF ;
+    public final void entryRuleFunction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:229:1: ( ruleFunction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:230:1: ruleFunction EOF
+            {
+             before(grammarAccess.getFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleFunction_in_entryRuleFunction420);
+            ruleFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getFunctionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleFunction427); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFunction"
+
+
+    // $ANTLR start "ruleFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:237:1: ruleFunction : ( ( rule__Function__Alternatives ) ) ;
+    public final void ruleFunction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:241:2: ( ( ( rule__Function__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:242:1: ( ( rule__Function__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:242:1: ( ( rule__Function__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:243:1: ( rule__Function__Alternatives )
+            {
+             before(grammarAccess.getFunctionAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:244:1: ( rule__Function__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:244:2: rule__Function__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Function__Alternatives_in_ruleFunction453);
+            rule__Function__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFunctionAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFunction"
+
+
+    // $ANTLR start "entryRuleWorkload"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:256:1: entryRuleWorkload : ruleWorkload EOF ;
+    public final void entryRuleWorkload() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:257:1: ( ruleWorkload EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:258:1: ruleWorkload EOF
+            {
+             before(grammarAccess.getWorkloadRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWorkload_in_entryRuleWorkload480);
+            ruleWorkload();
+
+            state._fsp--;
+
+             after(grammarAccess.getWorkloadRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWorkload487); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWorkload"
+
+
+    // $ANTLR start "ruleWorkload"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:265:1: ruleWorkload : ( ruleGenericWorkload ) ;
+    public final void ruleWorkload() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:269:2: ( ( ruleGenericWorkload ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:270:1: ( ruleGenericWorkload )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:270:1: ( ruleGenericWorkload )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:271:1: ruleGenericWorkload
+            {
+             before(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); 
+            pushFollow(FollowSets000.FOLLOW_ruleGenericWorkload_in_ruleWorkload513);
+            ruleGenericWorkload();
+
+            state._fsp--;
+
+             after(grammarAccess.getWorkloadAccess().getGenericWorkloadParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWorkload"
+
+
+    // $ANTLR start "entryRuleAbstractAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:284:1: entryRuleAbstractAction : ruleAbstractAction EOF ;
+    public final void entryRuleAbstractAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:285:1: ( ruleAbstractAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:286:1: ruleAbstractAction EOF
+            {
+             before(grammarAccess.getAbstractActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleAbstractAction_in_entryRuleAbstractAction539);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getAbstractActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleAbstractAction546); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleAbstractAction"
+
+
+    // $ANTLR start "ruleAbstractAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:293:1: ruleAbstractAction : ( ( rule__AbstractAction__Alternatives ) ) ;
+    public final void ruleAbstractAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:297:2: ( ( ( rule__AbstractAction__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:298:1: ( ( rule__AbstractAction__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:298:1: ( ( rule__AbstractAction__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:299:1: ( rule__AbstractAction__Alternatives )
+            {
+             before(grammarAccess.getAbstractActionAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:300:1: ( rule__AbstractAction__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:300:2: rule__AbstractAction__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__AbstractAction__Alternatives_in_ruleAbstractAction572);
+            rule__AbstractAction__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getAbstractActionAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleAbstractAction"
+
+
+    // $ANTLR start "entryRulePerformanceSpecification"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:312:1: entryRulePerformanceSpecification : rulePerformanceSpecification EOF ;
+    public final void entryRulePerformanceSpecification() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:313:1: ( rulePerformanceSpecification EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:314:1: rulePerformanceSpecification EOF
+            {
+             before(grammarAccess.getPerformanceSpecificationRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePerformanceSpecification_in_entryRulePerformanceSpecification599);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getPerformanceSpecificationRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePerformanceSpecification606); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePerformanceSpecification"
+
+
+    // $ANTLR start "rulePerformanceSpecification"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:321:1: rulePerformanceSpecification : ( ( rule__PerformanceSpecification__Alternatives ) ) ;
+    public final void rulePerformanceSpecification() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:325:2: ( ( ( rule__PerformanceSpecification__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:326:1: ( ( rule__PerformanceSpecification__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:326:1: ( ( rule__PerformanceSpecification__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:327:1: ( rule__PerformanceSpecification__Alternatives )
+            {
+             before(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:328:1: ( rule__PerformanceSpecification__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:328:2: rule__PerformanceSpecification__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PerformanceSpecification__Alternatives_in_rulePerformanceSpecification632);
+            rule__PerformanceSpecification__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPerformanceSpecificationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePerformanceSpecification"
+
+
+    // $ANTLR start "entryRuleNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:340:1: entryRuleNetworkInterfacePerfSpec : ruleNetworkInterfacePerfSpec EOF ;
+    public final void entryRuleNetworkInterfacePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:341:1: ( ruleNetworkInterfacePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:342:1: ruleNetworkInterfacePerfSpec EOF
+            {
+             before(grammarAccess.getNetworkInterfacePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkInterfacePerfSpec_in_entryRuleNetworkInterfacePerfSpec659);
+            ruleNetworkInterfacePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInterfacePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkInterfacePerfSpec666); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "ruleNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:349:1: ruleNetworkInterfacePerfSpec : ( ( rule__NetworkInterfacePerfSpec__Alternatives ) ) ;
+    public final void ruleNetworkInterfacePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:353:2: ( ( ( rule__NetworkInterfacePerfSpec__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:354:1: ( ( rule__NetworkInterfacePerfSpec__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:354:1: ( ( rule__NetworkInterfacePerfSpec__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:355:1: ( rule__NetworkInterfacePerfSpec__Alternatives )
+            {
+             before(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:356:1: ( rule__NetworkInterfacePerfSpec__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:356:2: rule__NetworkInterfacePerfSpec__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInterfacePerfSpec__Alternatives_in_ruleNetworkInterfacePerfSpec692);
+            rule__NetworkInterfacePerfSpec__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInterfacePerfSpecAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "entryRuleVirtualNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:368:1: entryRuleVirtualNetworkInterfacePerfSpec : ruleVirtualNetworkInterfacePerfSpec EOF ;
+    public final void entryRuleVirtualNetworkInterfacePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:369:1: ( ruleVirtualNetworkInterfacePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:370:1: ruleVirtualNetworkInterfacePerfSpec EOF
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVirtualNetworkInterfacePerfSpec_in_entryRuleVirtualNetworkInterfacePerfSpec719);
+            ruleVirtualNetworkInterfacePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVirtualNetworkInterfacePerfSpec726); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVirtualNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "ruleVirtualNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:377:1: ruleVirtualNetworkInterfacePerfSpec : ( ( rule__VirtualNetworkInterfacePerfSpec__Group__0 ) ) ;
+    public final void ruleVirtualNetworkInterfacePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:381:2: ( ( ( rule__VirtualNetworkInterfacePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:382:1: ( ( rule__VirtualNetworkInterfacePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:382:1: ( ( rule__VirtualNetworkInterfacePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:383:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:384:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:384:2: rule__VirtualNetworkInterfacePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__0_in_ruleVirtualNetworkInterfacePerfSpec752);
+            rule__VirtualNetworkInterfacePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVirtualNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "entryRulePhysicalNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:396:1: entryRulePhysicalNetworkInterfacePerfSpec : rulePhysicalNetworkInterfacePerfSpec EOF ;
+    public final void entryRulePhysicalNetworkInterfacePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:397:1: ( rulePhysicalNetworkInterfacePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:398:1: rulePhysicalNetworkInterfacePerfSpec EOF
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_entryRulePhysicalNetworkInterfacePerfSpec779);
+            rulePhysicalNetworkInterfacePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePhysicalNetworkInterfacePerfSpec786); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePhysicalNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "rulePhysicalNetworkInterfacePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:405:1: rulePhysicalNetworkInterfacePerfSpec : ( ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 ) ) ;
+    public final void rulePhysicalNetworkInterfacePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:409:2: ( ( ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:410:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:410:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:411:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:412:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:412:2: rule__PhysicalNetworkInterfacePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__0_in_rulePhysicalNetworkInterfacePerfSpec812);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePhysicalNetworkInterfacePerfSpec"
+
+
+    // $ANTLR start "entryRuleLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:424:1: entryRuleLinkPerfSpec : ruleLinkPerfSpec EOF ;
+    public final void entryRuleLinkPerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:425:1: ( ruleLinkPerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:426:1: ruleLinkPerfSpec EOF
+            {
+             before(grammarAccess.getLinkPerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLinkPerfSpec_in_entryRuleLinkPerfSpec839);
+            ruleLinkPerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getLinkPerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLinkPerfSpec846); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLinkPerfSpec"
+
+
+    // $ANTLR start "ruleLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:433:1: ruleLinkPerfSpec : ( ( rule__LinkPerfSpec__Alternatives ) ) ;
+    public final void ruleLinkPerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:437:2: ( ( ( rule__LinkPerfSpec__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:438:1: ( ( rule__LinkPerfSpec__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:438:1: ( ( rule__LinkPerfSpec__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:439:1: ( rule__LinkPerfSpec__Alternatives )
+            {
+             before(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:440:1: ( rule__LinkPerfSpec__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:440:2: rule__LinkPerfSpec__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LinkPerfSpec__Alternatives_in_ruleLinkPerfSpec872);
+            rule__LinkPerfSpec__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLinkPerfSpecAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLinkPerfSpec"
+
+
+    // $ANTLR start "entryRuleVirtualLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:452:1: entryRuleVirtualLinkPerfSpec : ruleVirtualLinkPerfSpec EOF ;
+    public final void entryRuleVirtualLinkPerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:453:1: ( ruleVirtualLinkPerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:454:1: ruleVirtualLinkPerfSpec EOF
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVirtualLinkPerfSpec_in_entryRuleVirtualLinkPerfSpec899);
+            ruleVirtualLinkPerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkPerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVirtualLinkPerfSpec906); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVirtualLinkPerfSpec"
+
+
+    // $ANTLR start "ruleVirtualLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:461:1: ruleVirtualLinkPerfSpec : ( ( rule__VirtualLinkPerfSpec__Group__0 ) ) ;
+    public final void ruleVirtualLinkPerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:465:2: ( ( ( rule__VirtualLinkPerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:466:1: ( ( rule__VirtualLinkPerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:466:1: ( ( rule__VirtualLinkPerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:467:1: ( rule__VirtualLinkPerfSpec__Group__0 )
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:468:1: ( rule__VirtualLinkPerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:468:2: rule__VirtualLinkPerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__0_in_ruleVirtualLinkPerfSpec932);
+            rule__VirtualLinkPerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVirtualLinkPerfSpec"
+
+
+    // $ANTLR start "entryRulePhysicalLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:480:1: entryRulePhysicalLinkPerfSpec : rulePhysicalLinkPerfSpec EOF ;
+    public final void entryRulePhysicalLinkPerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:481:1: ( rulePhysicalLinkPerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:482:1: rulePhysicalLinkPerfSpec EOF
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePhysicalLinkPerfSpec_in_entryRulePhysicalLinkPerfSpec959);
+            rulePhysicalLinkPerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkPerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePhysicalLinkPerfSpec966); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePhysicalLinkPerfSpec"
+
+
+    // $ANTLR start "rulePhysicalLinkPerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:489:1: rulePhysicalLinkPerfSpec : ( ( rule__PhysicalLinkPerfSpec__Group__0 ) ) ;
+    public final void rulePhysicalLinkPerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:493:2: ( ( ( rule__PhysicalLinkPerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:494:1: ( ( rule__PhysicalLinkPerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:494:1: ( ( rule__PhysicalLinkPerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:495:1: ( rule__PhysicalLinkPerfSpec__Group__0 )
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:496:1: ( rule__PhysicalLinkPerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:496:2: rule__PhysicalLinkPerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__0_in_rulePhysicalLinkPerfSpec992);
+            rule__PhysicalLinkPerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePhysicalLinkPerfSpec"
+
+
+    // $ANTLR start "entryRuleIntermediateNodePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:508:1: entryRuleIntermediateNodePerfSpec : ruleIntermediateNodePerfSpec EOF ;
+    public final void entryRuleIntermediateNodePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:509:1: ( ruleIntermediateNodePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:510:1: ruleIntermediateNodePerfSpec EOF
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleIntermediateNodePerfSpec_in_entryRuleIntermediateNodePerfSpec1019);
+            ruleIntermediateNodePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntermediateNodePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleIntermediateNodePerfSpec1026); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntermediateNodePerfSpec"
+
+
+    // $ANTLR start "ruleIntermediateNodePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:517:1: ruleIntermediateNodePerfSpec : ( ( rule__IntermediateNodePerfSpec__Group__0 ) ) ;
+    public final void ruleIntermediateNodePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:521:2: ( ( ( rule__IntermediateNodePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:522:1: ( ( rule__IntermediateNodePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:522:1: ( ( rule__IntermediateNodePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:523:1: ( rule__IntermediateNodePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:524:1: ( rule__IntermediateNodePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:524:2: rule__IntermediateNodePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__0_in_ruleIntermediateNodePerfSpec1052);
+            rule__IntermediateNodePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntermediateNodePerfSpec"
+
+
+    // $ANTLR start "entryRuleControlPlanePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:536:1: entryRuleControlPlanePerfSpec : ruleControlPlanePerfSpec EOF ;
+    public final void entryRuleControlPlanePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:537:1: ( ruleControlPlanePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:538:1: ruleControlPlanePerfSpec EOF
+            {
+             before(grammarAccess.getControlPlanePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleControlPlanePerfSpec_in_entryRuleControlPlanePerfSpec1079);
+            ruleControlPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getControlPlanePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleControlPlanePerfSpec1086); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleControlPlanePerfSpec"
+
+
+    // $ANTLR start "ruleControlPlanePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:545:1: ruleControlPlanePerfSpec : ( ( rule__ControlPlanePerfSpec__Group__0 ) ) ;
+    public final void ruleControlPlanePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:549:2: ( ( ( rule__ControlPlanePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:550:1: ( ( rule__ControlPlanePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:550:1: ( ( rule__ControlPlanePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:551:1: ( rule__ControlPlanePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:552:1: ( rule__ControlPlanePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:552:2: rule__ControlPlanePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__0_in_ruleControlPlanePerfSpec1112);
+            rule__ControlPlanePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleControlPlanePerfSpec"
+
+
+    // $ANTLR start "entryRuleDataPlanePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:564:1: entryRuleDataPlanePerfSpec : ruleDataPlanePerfSpec EOF ;
+    public final void entryRuleDataPlanePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:565:1: ( ruleDataPlanePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:566:1: ruleDataPlanePerfSpec EOF
+            {
+             before(grammarAccess.getDataPlanePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDataPlanePerfSpec_in_entryRuleDataPlanePerfSpec1139);
+            ruleDataPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataPlanePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDataPlanePerfSpec1146); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataPlanePerfSpec"
+
+
+    // $ANTLR start "ruleDataPlanePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:573:1: ruleDataPlanePerfSpec : ( ( rule__DataPlanePerfSpec__Group__0 ) ) ;
+    public final void ruleDataPlanePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:577:2: ( ( ( rule__DataPlanePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:578:1: ( ( rule__DataPlanePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:578:1: ( ( rule__DataPlanePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:579:1: ( rule__DataPlanePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:580:1: ( rule__DataPlanePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:580:2: rule__DataPlanePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__0_in_ruleDataPlanePerfSpec1172);
+            rule__DataPlanePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataPlanePerfSpec"
+
+
+    // $ANTLR start "entryRuleEndNodePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:592:1: entryRuleEndNodePerfSpec : ruleEndNodePerfSpec EOF ;
+    public final void entryRuleEndNodePerfSpec() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:593:1: ( ruleEndNodePerfSpec EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:594:1: ruleEndNodePerfSpec EOF
+            {
+             before(grammarAccess.getEndNodePerfSpecRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEndNodePerfSpec_in_entryRuleEndNodePerfSpec1199);
+            ruleEndNodePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndNodePerfSpecRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEndNodePerfSpec1206); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEndNodePerfSpec"
+
+
+    // $ANTLR start "ruleEndNodePerfSpec"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:601:1: ruleEndNodePerfSpec : ( ( rule__EndNodePerfSpec__Group__0 ) ) ;
+    public final void ruleEndNodePerfSpec() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:605:2: ( ( ( rule__EndNodePerfSpec__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:606:1: ( ( rule__EndNodePerfSpec__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:606:1: ( ( rule__EndNodePerfSpec__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:607:1: ( rule__EndNodePerfSpec__Group__0 )
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:608:1: ( rule__EndNodePerfSpec__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:608:2: rule__EndNodePerfSpec__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__0_in_ruleEndNodePerfSpec1232);
+            rule__EndNodePerfSpec__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEndNodePerfSpec"
+
+
+    // $ANTLR start "entryRuleNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:620:1: entryRuleNetworkInterface : ruleNetworkInterface EOF ;
+    public final void entryRuleNetworkInterface() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:621:1: ( ruleNetworkInterface EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:622:1: ruleNetworkInterface EOF
+            {
+             before(grammarAccess.getNetworkInterfaceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkInterface_in_entryRuleNetworkInterface1259);
+            ruleNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInterfaceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkInterface1266); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkInterface"
+
+
+    // $ANTLR start "ruleNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:629:1: ruleNetworkInterface : ( ( rule__NetworkInterface__Alternatives ) ) ;
+    public final void ruleNetworkInterface() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:633:2: ( ( ( rule__NetworkInterface__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:634:1: ( ( rule__NetworkInterface__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:634:1: ( ( rule__NetworkInterface__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:635:1: ( rule__NetworkInterface__Alternatives )
+            {
+             before(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:636:1: ( rule__NetworkInterface__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:636:2: rule__NetworkInterface__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInterface__Alternatives_in_ruleNetworkInterface1292);
+            rule__NetworkInterface__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInterfaceAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkInterface"
+
+
+    // $ANTLR start "entryRuleNetworkTraffic"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:648:1: entryRuleNetworkTraffic : ruleNetworkTraffic EOF ;
+    public final void entryRuleNetworkTraffic() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:649:1: ( ruleNetworkTraffic EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:650:1: ruleNetworkTraffic EOF
+            {
+             before(grammarAccess.getNetworkTrafficRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkTraffic_in_entryRuleNetworkTraffic1319);
+            ruleNetworkTraffic();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkTrafficRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkTraffic1326); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkTraffic"
+
+
+    // $ANTLR start "ruleNetworkTraffic"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:657:1: ruleNetworkTraffic : ( ( rule__NetworkTraffic__Group__0 ) ) ;
+    public final void ruleNetworkTraffic() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:661:2: ( ( ( rule__NetworkTraffic__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:662:1: ( ( rule__NetworkTraffic__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:662:1: ( ( rule__NetworkTraffic__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:663:1: ( rule__NetworkTraffic__Group__0 )
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:664:1: ( rule__NetworkTraffic__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:664:2: rule__NetworkTraffic__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__0_in_ruleNetworkTraffic1352);
+            rule__NetworkTraffic__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkTraffic"
+
+
+    // $ANTLR start "entryRuleNetworkStructure"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:676:1: entryRuleNetworkStructure : ruleNetworkStructure EOF ;
+    public final void entryRuleNetworkStructure() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:677:1: ( ruleNetworkStructure EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:678:1: ruleNetworkStructure EOF
+            {
+             before(grammarAccess.getNetworkStructureRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkStructure_in_entryRuleNetworkStructure1379);
+            ruleNetworkStructure();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkStructureRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkStructure1386); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkStructure"
+
+
+    // $ANTLR start "ruleNetworkStructure"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:685:1: ruleNetworkStructure : ( ( rule__NetworkStructure__Group__0 ) ) ;
+    public final void ruleNetworkStructure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:689:2: ( ( ( rule__NetworkStructure__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:690:1: ( ( rule__NetworkStructure__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:690:1: ( ( rule__NetworkStructure__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:691:1: ( rule__NetworkStructure__Group__0 )
+            {
+             before(grammarAccess.getNetworkStructureAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:692:1: ( rule__NetworkStructure__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:692:2: rule__NetworkStructure__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__0_in_ruleNetworkStructure1412);
+            rule__NetworkStructure__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkStructure"
+
+
+    // $ANTLR start "entryRuleNetworkConfiguration"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:704:1: entryRuleNetworkConfiguration : ruleNetworkConfiguration EOF ;
+    public final void entryRuleNetworkConfiguration() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:705:1: ( ruleNetworkConfiguration EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:706:1: ruleNetworkConfiguration EOF
+            {
+             before(grammarAccess.getNetworkConfigurationRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkConfiguration_in_entryRuleNetworkConfiguration1439);
+            ruleNetworkConfiguration();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkConfigurationRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkConfiguration1446); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkConfiguration"
+
+
+    // $ANTLR start "ruleNetworkConfiguration"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:713:1: ruleNetworkConfiguration : ( ( rule__NetworkConfiguration__Group__0 ) ) ;
+    public final void ruleNetworkConfiguration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:717:2: ( ( ( rule__NetworkConfiguration__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:718:1: ( ( rule__NetworkConfiguration__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:718:1: ( ( rule__NetworkConfiguration__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:719:1: ( rule__NetworkConfiguration__Group__0 )
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:720:1: ( rule__NetworkConfiguration__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:720:2: rule__NetworkConfiguration__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__0_in_ruleNetworkConfiguration1472);
+            rule__NetworkConfiguration__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkConfigurationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkConfiguration"
+
+
+    // $ANTLR start "entryRuleExperimentParam"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:732:1: entryRuleExperimentParam : ruleExperimentParam EOF ;
+    public final void entryRuleExperimentParam() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:733:1: ( ruleExperimentParam EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:734:1: ruleExperimentParam EOF
+            {
+             before(grammarAccess.getExperimentParamRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleExperimentParam_in_entryRuleExperimentParam1499);
+            ruleExperimentParam();
+
+            state._fsp--;
+
+             after(grammarAccess.getExperimentParamRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleExperimentParam1506); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExperimentParam"
+
+
+    // $ANTLR start "ruleExperimentParam"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:741:1: ruleExperimentParam : ( ( rule__ExperimentParam__Group__0 ) ) ;
+    public final void ruleExperimentParam() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:745:2: ( ( ( rule__ExperimentParam__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:746:1: ( ( rule__ExperimentParam__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:746:1: ( ( rule__ExperimentParam__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:747:1: ( rule__ExperimentParam__Group__0 )
+            {
+             before(grammarAccess.getExperimentParamAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:748:1: ( rule__ExperimentParam__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:748:2: rule__ExperimentParam__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__0_in_ruleExperimentParam1532);
+            rule__ExperimentParam__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExperimentParamAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExperimentParam"
+
+
+    // $ANTLR start "entryRuleEString"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:760:1: entryRuleEString : ruleEString EOF ;
+    public final void entryRuleEString() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:761:1: ( ruleEString EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:762:1: ruleEString EOF
+            {
+             before(grammarAccess.getEStringRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEString_in_entryRuleEString1559);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEStringRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEString1566); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEString"
+
+
+    // $ANTLR start "ruleEString"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:769:1: ruleEString : ( ( rule__EString__Alternatives ) ) ;
+    public final void ruleEString() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:773:2: ( ( ( rule__EString__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:774:1: ( ( rule__EString__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:774:1: ( ( rule__EString__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:775:1: ( rule__EString__Alternatives )
+            {
+             before(grammarAccess.getEStringAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:776:1: ( rule__EString__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:776:2: rule__EString__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EString__Alternatives_in_ruleEString1592);
+            rule__EString__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEStringAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEString"
+
+
+    // $ANTLR start "entryRuleSoftwareComponent"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:788:1: entryRuleSoftwareComponent : ruleSoftwareComponent EOF ;
+    public final void entryRuleSoftwareComponent() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:789:1: ( ruleSoftwareComponent EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:790:1: ruleSoftwareComponent EOF
+            {
+             before(grammarAccess.getSoftwareComponentRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSoftwareComponent_in_entryRuleSoftwareComponent1619);
+            ruleSoftwareComponent();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSoftwareComponent1626); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSoftwareComponent"
+
+
+    // $ANTLR start "ruleSoftwareComponent"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:797:1: ruleSoftwareComponent : ( ( rule__SoftwareComponent__Group__0 ) ) ;
+    public final void ruleSoftwareComponent() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:801:2: ( ( ( rule__SoftwareComponent__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:802:1: ( ( rule__SoftwareComponent__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:802:1: ( ( rule__SoftwareComponent__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:803:1: ( rule__SoftwareComponent__Group__0 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:804:1: ( rule__SoftwareComponent__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:804:2: rule__SoftwareComponent__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__0_in_ruleSoftwareComponent1652);
+            rule__SoftwareComponent__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSoftwareComponent"
+
+
+    // $ANTLR start "entryRuleEntityAddress"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:816:1: entryRuleEntityAddress : ruleEntityAddress EOF ;
+    public final void entryRuleEntityAddress() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:817:1: ( ruleEntityAddress EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:818:1: ruleEntityAddress EOF
+            {
+             before(grammarAccess.getEntityAddressRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEntityAddress_in_entryRuleEntityAddress1679);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getEntityAddressRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEntityAddress1686); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEntityAddress"
+
+
+    // $ANTLR start "ruleEntityAddress"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:825:1: ruleEntityAddress : ( ( rule__EntityAddress__Group__0 ) ) ;
+    public final void ruleEntityAddress() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:829:2: ( ( ( rule__EntityAddress__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:830:1: ( ( rule__EntityAddress__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:830:1: ( ( rule__EntityAddress__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:831:1: ( rule__EntityAddress__Group__0 )
+            {
+             before(grammarAccess.getEntityAddressAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:832:1: ( rule__EntityAddress__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:832:2: rule__EntityAddress__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__0_in_ruleEntityAddress1712);
+            rule__EntityAddress__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEntityAddress"
+
+
+    // $ANTLR start "entryRuleONOFFFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:844:1: entryRuleONOFFFlow : ruleONOFFFlow EOF ;
+    public final void entryRuleONOFFFlow() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:845:1: ( ruleONOFFFlow EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:846:1: ruleONOFFFlow EOF
+            {
+             before(grammarAccess.getONOFFFlowRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleONOFFFlow_in_entryRuleONOFFFlow1739);
+            ruleONOFFFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleONOFFFlow1746); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleONOFFFlow"
+
+
+    // $ANTLR start "ruleONOFFFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:853:1: ruleONOFFFlow : ( ( rule__ONOFFFlow__Group__0 ) ) ;
+    public final void ruleONOFFFlow() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:857:2: ( ( ( rule__ONOFFFlow__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:858:1: ( ( rule__ONOFFFlow__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:858:1: ( ( rule__ONOFFFlow__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:859:1: ( rule__ONOFFFlow__Group__0 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:860:1: ( rule__ONOFFFlow__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:860:2: rule__ONOFFFlow__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__0_in_ruleONOFFFlow1772);
+            rule__ONOFFFlow__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleONOFFFlow"
+
+
+    // $ANTLR start "entryRuleGenericFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:872:1: entryRuleGenericFlow : ruleGenericFlow EOF ;
+    public final void entryRuleGenericFlow() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:873:1: ( ruleGenericFlow EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:874:1: ruleGenericFlow EOF
+            {
+             before(grammarAccess.getGenericFlowRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleGenericFlow_in_entryRuleGenericFlow1799);
+            ruleGenericFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleGenericFlow1806); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleGenericFlow"
+
+
+    // $ANTLR start "ruleGenericFlow"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:881:1: ruleGenericFlow : ( ( rule__GenericFlow__Group__0 ) ) ;
+    public final void ruleGenericFlow() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:885:2: ( ( ( rule__GenericFlow__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:886:1: ( ( rule__GenericFlow__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:886:1: ( ( rule__GenericFlow__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:887:1: ( rule__GenericFlow__Group__0 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:888:1: ( rule__GenericFlow__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:888:2: rule__GenericFlow__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__0_in_ruleGenericFlow1832);
+            rule__GenericFlow__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleGenericFlow"
+
+
+    // $ANTLR start "entryRuleNetworkProtocol"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:900:1: entryRuleNetworkProtocol : ruleNetworkProtocol EOF ;
+    public final void entryRuleNetworkProtocol() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:901:1: ( ruleNetworkProtocol EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:902:1: ruleNetworkProtocol EOF
+            {
+             before(grammarAccess.getNetworkProtocolRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleNetworkProtocol_in_entryRuleNetworkProtocol1859);
+            ruleNetworkProtocol();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleNetworkProtocol1866); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNetworkProtocol"
+
+
+    // $ANTLR start "ruleNetworkProtocol"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:909:1: ruleNetworkProtocol : ( ( rule__NetworkProtocol__Group__0 ) ) ;
+    public final void ruleNetworkProtocol() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:913:2: ( ( ( rule__NetworkProtocol__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:914:1: ( ( rule__NetworkProtocol__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:914:1: ( ( rule__NetworkProtocol__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:915:1: ( rule__NetworkProtocol__Group__0 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:916:1: ( rule__NetworkProtocol__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:916:2: rule__NetworkProtocol__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__0_in_ruleNetworkProtocol1892);
+            rule__NetworkProtocol__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNetworkProtocol"
+
+
+    // $ANTLR start "entryRuleEInt"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:928:1: entryRuleEInt : ruleEInt EOF ;
+    public final void entryRuleEInt() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:929:1: ( ruleEInt EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:930:1: ruleEInt EOF
+            {
+             before(grammarAccess.getEIntRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEInt_in_entryRuleEInt1919);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getEIntRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEInt1926); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEInt"
+
+
+    // $ANTLR start "ruleEInt"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:937:1: ruleEInt : ( ( rule__EInt__Group__0 ) ) ;
+    public final void ruleEInt() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:941:2: ( ( ( rule__EInt__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:942:1: ( ( rule__EInt__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:942:1: ( ( rule__EInt__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:943:1: ( rule__EInt__Group__0 )
+            {
+             before(grammarAccess.getEIntAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:944:1: ( rule__EInt__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:944:2: rule__EInt__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EInt__Group__0_in_ruleEInt1952);
+            rule__EInt__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEIntAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEInt"
+
+
+    // $ANTLR start "entryRuleEBoolean"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:956:1: entryRuleEBoolean : ruleEBoolean EOF ;
+    public final void entryRuleEBoolean() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:957:1: ( ruleEBoolean EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:958:1: ruleEBoolean EOF
+            {
+             before(grammarAccess.getEBooleanRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEBoolean_in_entryRuleEBoolean1979);
+            ruleEBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getEBooleanRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEBoolean1986); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEBoolean"
+
+
+    // $ANTLR start "ruleEBoolean"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:965:1: ruleEBoolean : ( ( rule__EBoolean__Alternatives ) ) ;
+    public final void ruleEBoolean() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:969:2: ( ( ( rule__EBoolean__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:970:1: ( ( rule__EBoolean__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:970:1: ( ( rule__EBoolean__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:971:1: ( rule__EBoolean__Alternatives )
+            {
+             before(grammarAccess.getEBooleanAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:972:1: ( rule__EBoolean__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:972:2: rule__EBoolean__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EBoolean__Alternatives_in_ruleEBoolean2012);
+            rule__EBoolean__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEBooleanAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEBoolean"
+
+
+    // $ANTLR start "entryRuleConstantDoubleVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:984:1: entryRuleConstantDoubleVariable : ruleConstantDoubleVariable EOF ;
+    public final void entryRuleConstantDoubleVariable() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:985:1: ( ruleConstantDoubleVariable EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:986:1: ruleConstantDoubleVariable EOF
+            {
+             before(grammarAccess.getConstantDoubleVariableRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleConstantDoubleVariable_in_entryRuleConstantDoubleVariable2039);
+            ruleConstantDoubleVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDoubleVariableRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleConstantDoubleVariable2046); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantDoubleVariable"
+
+
+    // $ANTLR start "ruleConstantDoubleVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:993:1: ruleConstantDoubleVariable : ( ( rule__ConstantDoubleVariable__Group__0 ) ) ;
+    public final void ruleConstantDoubleVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:997:2: ( ( ( rule__ConstantDoubleVariable__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:998:1: ( ( rule__ConstantDoubleVariable__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:998:1: ( ( rule__ConstantDoubleVariable__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:999:1: ( rule__ConstantDoubleVariable__Group__0 )
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1000:1: ( rule__ConstantDoubleVariable__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1000:2: rule__ConstantDoubleVariable__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ConstantDoubleVariable__Group__0_in_ruleConstantDoubleVariable2072);
+            rule__ConstantDoubleVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConstantDoubleVariable"
+
+
+    // $ANTLR start "entryRuleConstantLongVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1012:1: entryRuleConstantLongVariable : ruleConstantLongVariable EOF ;
+    public final void entryRuleConstantLongVariable() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1013:1: ( ruleConstantLongVariable EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1014:1: ruleConstantLongVariable EOF
+            {
+             before(grammarAccess.getConstantLongVariableRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleConstantLongVariable_in_entryRuleConstantLongVariable2099);
+            ruleConstantLongVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantLongVariableRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleConstantLongVariable2106); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantLongVariable"
+
+
+    // $ANTLR start "ruleConstantLongVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1021:1: ruleConstantLongVariable : ( ( rule__ConstantLongVariable__Group__0 ) ) ;
+    public final void ruleConstantLongVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1025:2: ( ( ( rule__ConstantLongVariable__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1026:1: ( ( rule__ConstantLongVariable__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1026:1: ( ( rule__ConstantLongVariable__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1027:1: ( rule__ConstantLongVariable__Group__0 )
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1028:1: ( rule__ConstantLongVariable__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1028:2: rule__ConstantLongVariable__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ConstantLongVariable__Group__0_in_ruleConstantLongVariable2132);
+            rule__ConstantLongVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantLongVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConstantLongVariable"
+
+
+    // $ANTLR start "entryRuleRandomVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1040:1: entryRuleRandomVariable : ruleRandomVariable EOF ;
+    public final void entryRuleRandomVariable() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1041:1: ( ruleRandomVariable EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1042:1: ruleRandomVariable EOF
+            {
+             before(grammarAccess.getRandomVariableRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleRandomVariable_in_entryRuleRandomVariable2159);
+            ruleRandomVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getRandomVariableRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRandomVariable2166); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleRandomVariable"
+
+
+    // $ANTLR start "ruleRandomVariable"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1049:1: ruleRandomVariable : ( ( rule__RandomVariable__Group__0 ) ) ;
+    public final void ruleRandomVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1053:2: ( ( ( rule__RandomVariable__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1054:1: ( ( rule__RandomVariable__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1054:1: ( ( rule__RandomVariable__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1055:1: ( rule__RandomVariable__Group__0 )
+            {
+             before(grammarAccess.getRandomVariableAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1056:1: ( rule__RandomVariable__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1056:2: rule__RandomVariable__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__RandomVariable__Group__0_in_ruleRandomVariable2192);
+            rule__RandomVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRandomVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRandomVariable"
+
+
+    // $ANTLR start "entryRuleContinuousFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1068:1: entryRuleContinuousFunction : ruleContinuousFunction EOF ;
+    public final void entryRuleContinuousFunction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1069:1: ( ruleContinuousFunction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1070:1: ruleContinuousFunction EOF
+            {
+             before(grammarAccess.getContinuousFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleContinuousFunction_in_entryRuleContinuousFunction2219);
+            ruleContinuousFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getContinuousFunctionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleContinuousFunction2226); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleContinuousFunction"
+
+
+    // $ANTLR start "ruleContinuousFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1077:1: ruleContinuousFunction : ( ( rule__ContinuousFunction__Group__0 ) ) ;
+    public final void ruleContinuousFunction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1081:2: ( ( ( rule__ContinuousFunction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1082:1: ( ( rule__ContinuousFunction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1082:1: ( ( rule__ContinuousFunction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1083:1: ( rule__ContinuousFunction__Group__0 )
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1084:1: ( rule__ContinuousFunction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1084:2: rule__ContinuousFunction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ContinuousFunction__Group__0_in_ruleContinuousFunction2252);
+            rule__ContinuousFunction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getContinuousFunctionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleContinuousFunction"
+
+
+    // $ANTLR start "entryRuleDiscreteFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1096:1: entryRuleDiscreteFunction : ruleDiscreteFunction EOF ;
+    public final void entryRuleDiscreteFunction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1097:1: ( ruleDiscreteFunction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1098:1: ruleDiscreteFunction EOF
+            {
+             before(grammarAccess.getDiscreteFunctionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDiscreteFunction_in_entryRuleDiscreteFunction2279);
+            ruleDiscreteFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDiscreteFunction2286); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDiscreteFunction"
+
+
+    // $ANTLR start "ruleDiscreteFunction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1105:1: ruleDiscreteFunction : ( ( rule__DiscreteFunction__Group__0 ) ) ;
+    public final void ruleDiscreteFunction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1109:2: ( ( ( rule__DiscreteFunction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1110:1: ( ( rule__DiscreteFunction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1110:1: ( ( rule__DiscreteFunction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1111:1: ( rule__DiscreteFunction__Group__0 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1112:1: ( rule__DiscreteFunction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1112:2: rule__DiscreteFunction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DiscreteFunction__Group__0_in_ruleDiscreteFunction2312);
+            rule__DiscreteFunction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDiscreteFunction"
+
+
+    // $ANTLR start "entryRuleEFloat"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1124:1: entryRuleEFloat : ruleEFloat EOF ;
+    public final void entryRuleEFloat() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1125:1: ( ruleEFloat EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1126:1: ruleEFloat EOF
+            {
+             before(grammarAccess.getEFloatRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEFloat_in_entryRuleEFloat2339);
+            ruleEFloat();
+
+            state._fsp--;
+
+             after(grammarAccess.getEFloatRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEFloat2346); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEFloat"
+
+
+    // $ANTLR start "ruleEFloat"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1133:1: ruleEFloat : ( ( rule__EFloat__Group__0 ) ) ;
+    public final void ruleEFloat() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1137:2: ( ( ( rule__EFloat__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1138:1: ( ( rule__EFloat__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1138:1: ( ( rule__EFloat__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1139:1: ( rule__EFloat__Group__0 )
+            {
+             before(grammarAccess.getEFloatAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1140:1: ( rule__EFloat__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1140:2: rule__EFloat__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EFloat__Group__0_in_ruleEFloat2372);
+            rule__EFloat__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEFloat"
+
+
+    // $ANTLR start "entryRuleSpeedUnit"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1152:1: entryRuleSpeedUnit : ruleSpeedUnit EOF ;
+    public final void entryRuleSpeedUnit() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1153:1: ( ruleSpeedUnit EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1154:1: ruleSpeedUnit EOF
+            {
+             before(grammarAccess.getSpeedUnitRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSpeedUnit_in_entryRuleSpeedUnit2399);
+            ruleSpeedUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpeedUnitRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSpeedUnit2406); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSpeedUnit"
+
+
+    // $ANTLR start "ruleSpeedUnit"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1161:1: ruleSpeedUnit : ( ( rule__SpeedUnit__Group__0 ) ) ;
+    public final void ruleSpeedUnit() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1165:2: ( ( ( rule__SpeedUnit__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1166:1: ( ( rule__SpeedUnit__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1166:1: ( ( rule__SpeedUnit__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1167:1: ( rule__SpeedUnit__Group__0 )
+            {
+             before(grammarAccess.getSpeedUnitAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1168:1: ( rule__SpeedUnit__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1168:2: rule__SpeedUnit__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SpeedUnit__Group__0_in_ruleSpeedUnit2432);
+            rule__SpeedUnit__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpeedUnitAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSpeedUnit"
+
+
+    // $ANTLR start "entryRuleEDouble"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1180:1: entryRuleEDouble : ruleEDouble EOF ;
+    public final void entryRuleEDouble() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1181:1: ( ruleEDouble EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1182:1: ruleEDouble EOF
+            {
+             before(grammarAccess.getEDoubleRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEDouble_in_entryRuleEDouble2459);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getEDoubleRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEDouble2466); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEDouble"
+
+
+    // $ANTLR start "ruleEDouble"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1189:1: ruleEDouble : ( ( rule__EDouble__Group__0 ) ) ;
+    public final void ruleEDouble() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1193:2: ( ( ( rule__EDouble__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1194:1: ( ( rule__EDouble__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1194:1: ( ( rule__EDouble__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1195:1: ( rule__EDouble__Group__0 )
+            {
+             before(grammarAccess.getEDoubleAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1196:1: ( rule__EDouble__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1196:2: rule__EDouble__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EDouble__Group__0_in_ruleEDouble2492);
+            rule__EDouble__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEDouble"
+
+
+    // $ANTLR start "entryRuleELong"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1208:1: entryRuleELong : ruleELong EOF ;
+    public final void entryRuleELong() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1209:1: ( ruleELong EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1210:1: ruleELong EOF
+            {
+             before(grammarAccess.getELongRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleELong_in_entryRuleELong2519);
+            ruleELong();
+
+            state._fsp--;
+
+             after(grammarAccess.getELongRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleELong2526); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleELong"
+
+
+    // $ANTLR start "ruleELong"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1217:1: ruleELong : ( ( rule__ELong__Group__0 ) ) ;
+    public final void ruleELong() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1221:2: ( ( ( rule__ELong__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1222:1: ( ( rule__ELong__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1222:1: ( ( rule__ELong__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1223:1: ( rule__ELong__Group__0 )
+            {
+             before(grammarAccess.getELongAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1224:1: ( rule__ELong__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1224:2: rule__ELong__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ELong__Group__0_in_ruleELong2552);
+            rule__ELong__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getELongAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleELong"
+
+
+    // $ANTLR start "entryRuleDataSeries"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1236:1: entryRuleDataSeries : ruleDataSeries EOF ;
+    public final void entryRuleDataSeries() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1237:1: ( ruleDataSeries EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1238:1: ruleDataSeries EOF
+            {
+             before(grammarAccess.getDataSeriesRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDataSeries_in_entryRuleDataSeries2579);
+            ruleDataSeries();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataSeriesRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDataSeries2586); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDataSeries"
+
+
+    // $ANTLR start "ruleDataSeries"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1245:1: ruleDataSeries : ( ( rule__DataSeries__Group__0 ) ) ;
+    public final void ruleDataSeries() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1249:2: ( ( ( rule__DataSeries__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1250:1: ( ( rule__DataSeries__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1250:1: ( ( rule__DataSeries__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1251:1: ( rule__DataSeries__Group__0 )
+            {
+             before(grammarAccess.getDataSeriesAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1252:1: ( rule__DataSeries__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1252:2: rule__DataSeries__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataSeries__Group__0_in_ruleDataSeries2612);
+            rule__DataSeries__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataSeriesAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDataSeries"
+
+
+    // $ANTLR start "entryRuleTrafficSource"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1264:1: entryRuleTrafficSource : ruleTrafficSource EOF ;
+    public final void entryRuleTrafficSource() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1265:1: ( ruleTrafficSource EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1266:1: ruleTrafficSource EOF
+            {
+             before(grammarAccess.getTrafficSourceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTrafficSource_in_entryRuleTrafficSource2639);
+            ruleTrafficSource();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleTrafficSource2646); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTrafficSource"
+
+
+    // $ANTLR start "ruleTrafficSource"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1273:1: ruleTrafficSource : ( ( rule__TrafficSource__Group__0 ) ) ;
+    public final void ruleTrafficSource() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1277:2: ( ( ( rule__TrafficSource__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1278:1: ( ( rule__TrafficSource__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1278:1: ( ( rule__TrafficSource__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1279:1: ( rule__TrafficSource__Group__0 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1280:1: ( rule__TrafficSource__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1280:2: rule__TrafficSource__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__TrafficSource__Group__0_in_ruleTrafficSource2672);
+            rule__TrafficSource__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTrafficSource"
+
+
+    // $ANTLR start "entryRuleGenericWorkload"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1292:1: entryRuleGenericWorkload : ruleGenericWorkload EOF ;
+    public final void entryRuleGenericWorkload() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1293:1: ( ruleGenericWorkload EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1294:1: ruleGenericWorkload EOF
+            {
+             before(grammarAccess.getGenericWorkloadRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleGenericWorkload_in_entryRuleGenericWorkload2699);
+            ruleGenericWorkload();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericWorkloadRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleGenericWorkload2706); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleGenericWorkload"
+
+
+    // $ANTLR start "ruleGenericWorkload"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1301:1: ruleGenericWorkload : ( ( rule__GenericWorkload__Group__0 ) ) ;
+    public final void ruleGenericWorkload() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1305:2: ( ( ( rule__GenericWorkload__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1306:1: ( ( rule__GenericWorkload__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1306:1: ( ( rule__GenericWorkload__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1307:1: ( rule__GenericWorkload__Group__0 )
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1308:1: ( rule__GenericWorkload__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1308:2: rule__GenericWorkload__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericWorkload__Group__0_in_ruleGenericWorkload2732);
+            rule__GenericWorkload__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericWorkloadAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleGenericWorkload"
+
+
+    // $ANTLR start "entryRuleBranchAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1320:1: entryRuleBranchAction : ruleBranchAction EOF ;
+    public final void entryRuleBranchAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1321:1: ( ruleBranchAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1322:1: ruleBranchAction EOF
+            {
+             before(grammarAccess.getBranchActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_entryRuleBranchAction2759);
+            ruleBranchAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleBranchAction2766); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBranchAction"
+
+
+    // $ANTLR start "ruleBranchAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1329:1: ruleBranchAction : ( ( rule__BranchAction__Group__0 ) ) ;
+    public final void ruleBranchAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1333:2: ( ( ( rule__BranchAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1334:1: ( ( rule__BranchAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1334:1: ( ( rule__BranchAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1335:1: ( rule__BranchAction__Group__0 )
+            {
+             before(grammarAccess.getBranchActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1336:1: ( rule__BranchAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1336:2: rule__BranchAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__BranchAction__Group__0_in_ruleBranchAction2792);
+            rule__BranchAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBranchAction"
+
+
+    // $ANTLR start "entryRuleLoopAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1348:1: entryRuleLoopAction : ruleLoopAction EOF ;
+    public final void entryRuleLoopAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1349:1: ( ruleLoopAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1350:1: ruleLoopAction EOF
+            {
+             before(grammarAccess.getLoopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_entryRuleLoopAction2819);
+            ruleLoopAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleLoopAction2826); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLoopAction"
+
+
+    // $ANTLR start "ruleLoopAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1357:1: ruleLoopAction : ( ( rule__LoopAction__Group__0 ) ) ;
+    public final void ruleLoopAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1361:2: ( ( ( rule__LoopAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1362:1: ( ( rule__LoopAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1362:1: ( ( rule__LoopAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1363:1: ( rule__LoopAction__Group__0 )
+            {
+             before(grammarAccess.getLoopActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1364:1: ( rule__LoopAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1364:2: rule__LoopAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__LoopAction__Group__0_in_ruleLoopAction2852);
+            rule__LoopAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleLoopAction"
+
+
+    // $ANTLR start "entryRuleSequenceAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1376:1: entryRuleSequenceAction : ruleSequenceAction EOF ;
+    public final void entryRuleSequenceAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1377:1: ( ruleSequenceAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1378:1: ruleSequenceAction EOF
+            {
+             before(grammarAccess.getSequenceActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleSequenceAction_in_entryRuleSequenceAction2879);
+            ruleSequenceAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getSequenceActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleSequenceAction2886); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSequenceAction"
+
+
+    // $ANTLR start "ruleSequenceAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1385:1: ruleSequenceAction : ( ( rule__SequenceAction__Group__0 ) ) ;
+    public final void ruleSequenceAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1389:2: ( ( ( rule__SequenceAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1390:1: ( ( rule__SequenceAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1390:1: ( ( rule__SequenceAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1391:1: ( rule__SequenceAction__Group__0 )
+            {
+             before(grammarAccess.getSequenceActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1392:1: ( rule__SequenceAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1392:2: rule__SequenceAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SequenceAction__Group__0_in_ruleSequenceAction2912);
+            rule__SequenceAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSequenceAction"
+
+
+    // $ANTLR start "entryRuleStartAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1404:1: entryRuleStartAction : ruleStartAction EOF ;
+    public final void entryRuleStartAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1405:1: ( ruleStartAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1406:1: ruleStartAction EOF
+            {
+             before(grammarAccess.getStartActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_entryRuleStartAction2939);
+            ruleStartAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStartAction2946); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStartAction"
+
+
+    // $ANTLR start "ruleStartAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1413:1: ruleStartAction : ( ( rule__StartAction__Group__0 ) ) ;
+    public final void ruleStartAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1417:2: ( ( ( rule__StartAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1418:1: ( ( rule__StartAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1418:1: ( ( rule__StartAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1419:1: ( rule__StartAction__Group__0 )
+            {
+             before(grammarAccess.getStartActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1420:1: ( rule__StartAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1420:2: rule__StartAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StartAction__Group__0_in_ruleStartAction2972);
+            rule__StartAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStartAction"
+
+
+    // $ANTLR start "entryRuleStopAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1432:1: entryRuleStopAction : ruleStopAction EOF ;
+    public final void entryRuleStopAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1433:1: ( ruleStopAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1434:1: ruleStopAction EOF
+            {
+             before(grammarAccess.getStopActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_entryRuleStopAction2999);
+            ruleStopAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getStopActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleStopAction3006); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStopAction"
+
+
+    // $ANTLR start "ruleStopAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1441:1: ruleStopAction : ( ( rule__StopAction__Group__0 ) ) ;
+    public final void ruleStopAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1445:2: ( ( ( rule__StopAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1446:1: ( ( rule__StopAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1446:1: ( ( rule__StopAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1447:1: ( rule__StopAction__Group__0 )
+            {
+             before(grammarAccess.getStopActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1448:1: ( rule__StopAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1448:2: rule__StopAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__StopAction__Group__0_in_ruleStopAction3032);
+            rule__StopAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStopActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStopAction"
+
+
+    // $ANTLR start "entryRuleTransmitAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1460:1: entryRuleTransmitAction : ruleTransmitAction EOF ;
+    public final void entryRuleTransmitAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1461:1: ( ruleTransmitAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1462:1: ruleTransmitAction EOF
+            {
+             before(grammarAccess.getTransmitActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleTransmitAction_in_entryRuleTransmitAction3059);
+            ruleTransmitAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getTransmitActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleTransmitAction3066); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTransmitAction"
+
+
+    // $ANTLR start "ruleTransmitAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1469:1: ruleTransmitAction : ( ( rule__TransmitAction__Group__0 ) ) ;
+    public final void ruleTransmitAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1473:2: ( ( ( rule__TransmitAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1474:1: ( ( rule__TransmitAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1474:1: ( ( rule__TransmitAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1475:1: ( rule__TransmitAction__Group__0 )
+            {
+             before(grammarAccess.getTransmitActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1476:1: ( rule__TransmitAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1476:2: rule__TransmitAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__TransmitAction__Group__0_in_ruleTransmitAction3092);
+            rule__TransmitAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTransmitActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTransmitAction"
+
+
+    // $ANTLR start "entryRuleWaitAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1488:1: entryRuleWaitAction : ruleWaitAction EOF ;
+    public final void entryRuleWaitAction() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1489:1: ( ruleWaitAction EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1490:1: ruleWaitAction EOF
+            {
+             before(grammarAccess.getWaitActionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleWaitAction_in_entryRuleWaitAction3119);
+            ruleWaitAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getWaitActionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleWaitAction3126); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleWaitAction"
+
+
+    // $ANTLR start "ruleWaitAction"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1497:1: ruleWaitAction : ( ( rule__WaitAction__Group__0 ) ) ;
+    public final void ruleWaitAction() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1501:2: ( ( ( rule__WaitAction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1502:1: ( ( rule__WaitAction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1502:1: ( ( rule__WaitAction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1503:1: ( rule__WaitAction__Group__0 )
+            {
+             before(grammarAccess.getWaitActionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1504:1: ( rule__WaitAction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1504:2: rule__WaitAction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__WaitAction__Group__0_in_ruleWaitAction3152);
+            rule__WaitAction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWaitActionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWaitAction"
+
+
+    // $ANTLR start "entryRuleVirtualNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1518:1: entryRuleVirtualNode : ruleVirtualNode EOF ;
+    public final void entryRuleVirtualNode() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1519:1: ( ruleVirtualNode EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1520:1: ruleVirtualNode EOF
+            {
+             before(grammarAccess.getVirtualNodeRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVirtualNode_in_entryRuleVirtualNode3181);
+            ruleVirtualNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVirtualNode3188); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVirtualNode"
+
+
+    // $ANTLR start "ruleVirtualNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1527:1: ruleVirtualNode : ( ( rule__VirtualNode__Group__0 ) ) ;
+    public final void ruleVirtualNode() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1531:2: ( ( ( rule__VirtualNode__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1532:1: ( ( rule__VirtualNode__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1532:1: ( ( rule__VirtualNode__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1533:1: ( rule__VirtualNode__Group__0 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1534:1: ( rule__VirtualNode__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1534:2: rule__VirtualNode__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNode__Group__0_in_ruleVirtualNode3214);
+            rule__VirtualNode__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVirtualNode"
+
+
+    // $ANTLR start "entryRulePhysicalNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1546:1: entryRulePhysicalNode : rulePhysicalNode EOF ;
+    public final void entryRulePhysicalNode() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1547:1: ( rulePhysicalNode EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1548:1: rulePhysicalNode EOF
+            {
+             before(grammarAccess.getPhysicalNodeRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePhysicalNode_in_entryRulePhysicalNode3241);
+            rulePhysicalNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePhysicalNode3248); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePhysicalNode"
+
+
+    // $ANTLR start "rulePhysicalNode"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1555:1: rulePhysicalNode : ( ( rule__PhysicalNode__Group__0 ) ) ;
+    public final void rulePhysicalNode() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1559:2: ( ( ( rule__PhysicalNode__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1560:1: ( ( rule__PhysicalNode__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1560:1: ( ( rule__PhysicalNode__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1561:1: ( rule__PhysicalNode__Group__0 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1562:1: ( rule__PhysicalNode__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1562:2: rule__PhysicalNode__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNode__Group__0_in_rulePhysicalNode3274);
+            rule__PhysicalNode__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePhysicalNode"
+
+
+    // $ANTLR start "entryRulePhysicalLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1574:1: entryRulePhysicalLink : rulePhysicalLink EOF ;
+    public final void entryRulePhysicalLink() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1575:1: ( rulePhysicalLink EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1576:1: rulePhysicalLink EOF
+            {
+             before(grammarAccess.getPhysicalLinkRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePhysicalLink_in_entryRulePhysicalLink3301);
+            rulePhysicalLink();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePhysicalLink3308); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePhysicalLink"
+
+
+    // $ANTLR start "rulePhysicalLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1583:1: rulePhysicalLink : ( ( rule__PhysicalLink__Group__0 ) ) ;
+    public final void rulePhysicalLink() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1587:2: ( ( ( rule__PhysicalLink__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1588:1: ( ( rule__PhysicalLink__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1588:1: ( ( rule__PhysicalLink__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1589:1: ( rule__PhysicalLink__Group__0 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1590:1: ( rule__PhysicalLink__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1590:2: rule__PhysicalLink__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLink__Group__0_in_rulePhysicalLink3334);
+            rule__PhysicalLink__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePhysicalLink"
+
+
+    // $ANTLR start "entryRuleVirtualLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1602:1: entryRuleVirtualLink : ruleVirtualLink EOF ;
+    public final void entryRuleVirtualLink() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1603:1: ( ruleVirtualLink EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1604:1: ruleVirtualLink EOF
+            {
+             before(grammarAccess.getVirtualLinkRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVirtualLink_in_entryRuleVirtualLink3361);
+            ruleVirtualLink();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVirtualLink3368); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVirtualLink"
+
+
+    // $ANTLR start "ruleVirtualLink"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1611:1: ruleVirtualLink : ( ( rule__VirtualLink__Group__0 ) ) ;
+    public final void ruleVirtualLink() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1615:2: ( ( ( rule__VirtualLink__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1616:1: ( ( rule__VirtualLink__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1616:1: ( ( rule__VirtualLink__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1617:1: ( rule__VirtualLink__Group__0 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1618:1: ( rule__VirtualLink__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1618:2: rule__VirtualLink__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLink__Group__0_in_ruleVirtualLink3394);
+            rule__VirtualLink__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVirtualLink"
+
+
+    // $ANTLR start "entryRuleProtocolsRepository"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1630:1: entryRuleProtocolsRepository : ruleProtocolsRepository EOF ;
+    public final void entryRuleProtocolsRepository() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1631:1: ( ruleProtocolsRepository EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1632:1: ruleProtocolsRepository EOF
+            {
+             before(grammarAccess.getProtocolsRepositoryRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleProtocolsRepository_in_entryRuleProtocolsRepository3421);
+            ruleProtocolsRepository();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolsRepositoryRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleProtocolsRepository3428); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleProtocolsRepository"
+
+
+    // $ANTLR start "ruleProtocolsRepository"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1639:1: ruleProtocolsRepository : ( ( rule__ProtocolsRepository__Group__0 ) ) ;
+    public final void ruleProtocolsRepository() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1643:2: ( ( ( rule__ProtocolsRepository__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1644:1: ( ( rule__ProtocolsRepository__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1644:1: ( ( rule__ProtocolsRepository__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1645:1: ( rule__ProtocolsRepository__Group__0 )
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1646:1: ( rule__ProtocolsRepository__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1646:2: rule__ProtocolsRepository__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ProtocolsRepository__Group__0_in_ruleProtocolsRepository3454);
+            rule__ProtocolsRepository__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProtocolsRepository"
+
+
+    // $ANTLR start "entryRuleRoutesRepository"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1658:1: entryRuleRoutesRepository : ruleRoutesRepository EOF ;
+    public final void entryRuleRoutesRepository() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1659:1: ( ruleRoutesRepository EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1660:1: ruleRoutesRepository EOF
+            {
+             before(grammarAccess.getRoutesRepositoryRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleRoutesRepository_in_entryRuleRoutesRepository3481);
+            ruleRoutesRepository();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRoutesRepository3488); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleRoutesRepository"
+
+
+    // $ANTLR start "ruleRoutesRepository"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1667:1: ruleRoutesRepository : ( ( rule__RoutesRepository__Group__0 ) ) ;
+    public final void ruleRoutesRepository() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1671:2: ( ( ( rule__RoutesRepository__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1672:1: ( ( rule__RoutesRepository__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1672:1: ( ( rule__RoutesRepository__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1673:1: ( rule__RoutesRepository__Group__0 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1674:1: ( rule__RoutesRepository__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1674:2: rule__RoutesRepository__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__RoutesRepository__Group__0_in_ruleRoutesRepository3514);
+            rule__RoutesRepository__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRoutesRepository"
+
+
+    // $ANTLR start "entryRuleProtocolStack"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1686:1: entryRuleProtocolStack : ruleProtocolStack EOF ;
+    public final void entryRuleProtocolStack() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1687:1: ( ruleProtocolStack EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1688:1: ruleProtocolStack EOF
+            {
+             before(grammarAccess.getProtocolStackRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleProtocolStack_in_entryRuleProtocolStack3541);
+            ruleProtocolStack();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleProtocolStack3548); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleProtocolStack"
+
+
+    // $ANTLR start "ruleProtocolStack"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1695:1: ruleProtocolStack : ( ( rule__ProtocolStack__Group__0 ) ) ;
+    public final void ruleProtocolStack() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1699:2: ( ( ( rule__ProtocolStack__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1700:1: ( ( rule__ProtocolStack__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1700:1: ( ( rule__ProtocolStack__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1701:1: ( rule__ProtocolStack__Group__0 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1702:1: ( rule__ProtocolStack__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1702:2: rule__ProtocolStack__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ProtocolStack__Group__0_in_ruleProtocolStack3574);
+            rule__ProtocolStack__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProtocolStack"
+
+
+    // $ANTLR start "entryRuleProtocolLayer"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1714:1: entryRuleProtocolLayer : ruleProtocolLayer EOF ;
+    public final void entryRuleProtocolLayer() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1715:1: ( ruleProtocolLayer EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1716:1: ruleProtocolLayer EOF
+            {
+             before(grammarAccess.getProtocolLayerRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleProtocolLayer_in_entryRuleProtocolLayer3601);
+            ruleProtocolLayer();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleProtocolLayer3608); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleProtocolLayer"
+
+
+    // $ANTLR start "ruleProtocolLayer"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1723:1: ruleProtocolLayer : ( ( rule__ProtocolLayer__Group__0 ) ) ;
+    public final void ruleProtocolLayer() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1727:2: ( ( ( rule__ProtocolLayer__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1728:1: ( ( rule__ProtocolLayer__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1728:1: ( ( rule__ProtocolLayer__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1729:1: ( rule__ProtocolLayer__Group__0 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1730:1: ( rule__ProtocolLayer__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1730:2: rule__ProtocolLayer__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ProtocolLayer__Group__0_in_ruleProtocolLayer3634);
+            rule__ProtocolLayer__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleProtocolLayer"
+
+
+    // $ANTLR start "entryRuleRoute"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1742:1: entryRuleRoute : ruleRoute EOF ;
+    public final void entryRuleRoute() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1743:1: ( ruleRoute EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1744:1: ruleRoute EOF
+            {
+             before(grammarAccess.getRouteRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleRoute_in_entryRuleRoute3661);
+            ruleRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleRoute3668); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleRoute"
+
+
+    // $ANTLR start "ruleRoute"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1751:1: ruleRoute : ( ( rule__Route__Group__0 ) ) ;
+    public final void ruleRoute() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1755:2: ( ( ( rule__Route__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1756:1: ( ( rule__Route__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1756:1: ( ( rule__Route__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1757:1: ( rule__Route__Group__0 )
+            {
+             before(grammarAccess.getRouteAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1758:1: ( rule__Route__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1758:2: rule__Route__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Route__Group__0_in_ruleRoute3694);
+            rule__Route__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleRoute"
+
+
+    // $ANTLR start "entryRuleFlowRoute"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1770:1: entryRuleFlowRoute : ruleFlowRoute EOF ;
+    public final void entryRuleFlowRoute() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1771:1: ( ruleFlowRoute EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1772:1: ruleFlowRoute EOF
+            {
+             before(grammarAccess.getFlowRouteRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleFlowRoute_in_entryRuleFlowRoute3721);
+            ruleFlowRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleFlowRoute3728); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlowRoute"
+
+
+    // $ANTLR start "ruleFlowRoute"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1779:1: ruleFlowRoute : ( ( rule__FlowRoute__Group__0 ) ) ;
+    public final void ruleFlowRoute() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1783:2: ( ( ( rule__FlowRoute__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1784:1: ( ( rule__FlowRoute__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1784:1: ( ( rule__FlowRoute__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1785:1: ( rule__FlowRoute__Group__0 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1786:1: ( rule__FlowRoute__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1786:2: rule__FlowRoute__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__FlowRoute__Group__0_in_ruleFlowRoute3754);
+            rule__FlowRoute__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlowRoute"
+
+
+    // $ANTLR start "entryRuleDirection"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1798:1: entryRuleDirection : ruleDirection EOF ;
+    public final void entryRuleDirection() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1799:1: ( ruleDirection EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1800:1: ruleDirection EOF
+            {
+             before(grammarAccess.getDirectionRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleDirection_in_entryRuleDirection3781);
+            ruleDirection();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleDirection3788); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDirection"
+
+
+    // $ANTLR start "ruleDirection"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1807:1: ruleDirection : ( ( rule__Direction__Group__0 ) ) ;
+    public final void ruleDirection() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1811:2: ( ( ( rule__Direction__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1812:1: ( ( rule__Direction__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1812:1: ( ( rule__Direction__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1813:1: ( rule__Direction__Group__0 )
+            {
+             before(grammarAccess.getDirectionAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1814:1: ( rule__Direction__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1814:2: rule__Direction__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Direction__Group__0_in_ruleDirection3814);
+            rule__Direction__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDirection"
+
+
+    // $ANTLR start "entryRuleHop"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1826:1: entryRuleHop : ruleHop EOF ;
+    public final void entryRuleHop() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1827:1: ( ruleHop EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1828:1: ruleHop EOF
+            {
+             before(grammarAccess.getHopRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleHop_in_entryRuleHop3841);
+            ruleHop();
+
+            state._fsp--;
+
+             after(grammarAccess.getHopRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleHop3848); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleHop"
+
+
+    // $ANTLR start "ruleHop"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1835:1: ruleHop : ( ( rule__Hop__Group__0 ) ) ;
+    public final void ruleHop() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1839:2: ( ( ( rule__Hop__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1840:1: ( ( rule__Hop__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1840:1: ( ( rule__Hop__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1841:1: ( rule__Hop__Group__0 )
+            {
+             before(grammarAccess.getHopAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1842:1: ( rule__Hop__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1842:2: rule__Hop__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Hop__Group__0_in_ruleHop3874);
+            rule__Hop__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getHopAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleHop"
+
+
+    // $ANTLR start "entryRuleEIntegerObject"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1854:1: entryRuleEIntegerObject : ruleEIntegerObject EOF ;
+    public final void entryRuleEIntegerObject() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1855:1: ( ruleEIntegerObject EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1856:1: ruleEIntegerObject EOF
+            {
+             before(grammarAccess.getEIntegerObjectRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleEIntegerObject_in_entryRuleEIntegerObject3901);
+            ruleEIntegerObject();
+
+            state._fsp--;
+
+             after(grammarAccess.getEIntegerObjectRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleEIntegerObject3908); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEIntegerObject"
+
+
+    // $ANTLR start "ruleEIntegerObject"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1863:1: ruleEIntegerObject : ( ( rule__EIntegerObject__Group__0 ) ) ;
+    public final void ruleEIntegerObject() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1867:2: ( ( ( rule__EIntegerObject__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1868:1: ( ( rule__EIntegerObject__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1868:1: ( ( rule__EIntegerObject__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1869:1: ( rule__EIntegerObject__Group__0 )
+            {
+             before(grammarAccess.getEIntegerObjectAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1870:1: ( rule__EIntegerObject__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1870:2: rule__EIntegerObject__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EIntegerObject__Group__0_in_ruleEIntegerObject3934);
+            rule__EIntegerObject__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEIntegerObjectAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEIntegerObject"
+
+
+    // $ANTLR start "entryRulePhysicalNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1882:1: entryRulePhysicalNetworkInterface : rulePhysicalNetworkInterface EOF ;
+    public final void entryRulePhysicalNetworkInterface() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1883:1: ( rulePhysicalNetworkInterface EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1884:1: rulePhysicalNetworkInterface EOF
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceRule()); 
+            pushFollow(FollowSets000.FOLLOW_rulePhysicalNetworkInterface_in_entryRulePhysicalNetworkInterface3961);
+            rulePhysicalNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulePhysicalNetworkInterface3968); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRulePhysicalNetworkInterface"
+
+
+    // $ANTLR start "rulePhysicalNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1891:1: rulePhysicalNetworkInterface : ( ( rule__PhysicalNetworkInterface__Group__0 ) ) ;
+    public final void rulePhysicalNetworkInterface() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1895:2: ( ( ( rule__PhysicalNetworkInterface__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1896:1: ( ( rule__PhysicalNetworkInterface__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1896:1: ( ( rule__PhysicalNetworkInterface__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1897:1: ( rule__PhysicalNetworkInterface__Group__0 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1898:1: ( rule__PhysicalNetworkInterface__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1898:2: rule__PhysicalNetworkInterface__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterface__Group__0_in_rulePhysicalNetworkInterface3994);
+            rule__PhysicalNetworkInterface__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rulePhysicalNetworkInterface"
+
+
+    // $ANTLR start "entryRuleVirtualNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1910:1: entryRuleVirtualNetworkInterface : ruleVirtualNetworkInterface EOF ;
+    public final void entryRuleVirtualNetworkInterface() throws RecognitionException {
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1911:1: ( ruleVirtualNetworkInterface EOF )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1912:1: ruleVirtualNetworkInterface EOF
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceRule()); 
+            pushFollow(FollowSets000.FOLLOW_ruleVirtualNetworkInterface_in_entryRuleVirtualNetworkInterface4021);
+            ruleVirtualNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceRule()); 
+            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleVirtualNetworkInterface4028); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVirtualNetworkInterface"
+
+
+    // $ANTLR start "ruleVirtualNetworkInterface"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1919:1: ruleVirtualNetworkInterface : ( ( rule__VirtualNetworkInterface__Group__0 ) ) ;
+    public final void ruleVirtualNetworkInterface() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1923:2: ( ( ( rule__VirtualNetworkInterface__Group__0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1924:1: ( ( rule__VirtualNetworkInterface__Group__0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1924:1: ( ( rule__VirtualNetworkInterface__Group__0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1925:1: ( rule__VirtualNetworkInterface__Group__0 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1926:1: ( rule__VirtualNetworkInterface__Group__0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1926:2: rule__VirtualNetworkInterface__Group__0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterface__Group__0_in_ruleVirtualNetworkInterface4054);
+            rule__VirtualNetworkInterface__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVirtualNetworkInterface"
+
+
+    // $ANTLR start "ruleUnitPrefix"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1939:1: ruleUnitPrefix : ( ( rule__UnitPrefix__Alternatives ) ) ;
+    public final void ruleUnitPrefix() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1943:1: ( ( ( rule__UnitPrefix__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1944:1: ( ( rule__UnitPrefix__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1944:1: ( ( rule__UnitPrefix__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1945:1: ( rule__UnitPrefix__Alternatives )
+            {
+             before(grammarAccess.getUnitPrefixAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1946:1: ( rule__UnitPrefix__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1946:2: rule__UnitPrefix__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__UnitPrefix__Alternatives_in_ruleUnitPrefix4091);
+            rule__UnitPrefix__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUnitPrefixAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleUnitPrefix"
+
+
+    // $ANTLR start "ruleSpeed"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1958:1: ruleSpeed : ( ( rule__Speed__Alternatives ) ) ;
+    public final void ruleSpeed() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1962:1: ( ( ( rule__Speed__Alternatives ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1963:1: ( ( rule__Speed__Alternatives ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1963:1: ( ( rule__Speed__Alternatives ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1964:1: ( rule__Speed__Alternatives )
+            {
+             before(grammarAccess.getSpeedAccess().getAlternatives()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1965:1: ( rule__Speed__Alternatives )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1965:2: rule__Speed__Alternatives
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__Speed__Alternatives_in_ruleSpeed4127);
+            rule__Speed__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpeedAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSpeed"
+
+
+    // $ANTLR start "rule__Flow__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1976:1: rule__Flow__Alternatives : ( ( ruleONOFFFlow ) | ( ruleGenericFlow ) );
+    public final void rule__Flow__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1980:1: ( ( ruleONOFFFlow ) | ( ruleGenericFlow ) )
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0==159) ) {
+                alt1=1;
+            }
+            else if ( (LA1_0==80) ) {
+                alt1=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1981:1: ( ruleONOFFFlow )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1981:1: ( ruleONOFFFlow )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1982:1: ruleONOFFFlow
+                    {
+                     before(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleONOFFFlow_in_rule__Flow__Alternatives4162);
+                    ruleONOFFFlow();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowAccess().getONOFFFlowParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1987:6: ( ruleGenericFlow )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1987:6: ( ruleGenericFlow )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1988:1: ruleGenericFlow
+                    {
+                     before(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleGenericFlow_in_rule__Flow__Alternatives4179);
+                    ruleGenericFlow();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowAccess().getGenericFlowParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Alternatives"
+
+
+    // $ANTLR start "rule__Node__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:1998:1: rule__Node__Alternatives : ( ( ruleVirtualNode ) | ( rulePhysicalNode ) );
+    public final void rule__Node__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2002:1: ( ( ruleVirtualNode ) | ( rulePhysicalNode ) )
+            int alt2=2;
+            int LA2_0 = input.LA(1);
+
+            if ( (LA2_0==120) ) {
+                alt2=1;
+            }
+            else if ( (LA2_0==126) ) {
+                alt2=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 2, 0, input);
+
+                throw nvae;
+            }
+            switch (alt2) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2003:1: ( ruleVirtualNode )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2003:1: ( ruleVirtualNode )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2004:1: ruleVirtualNode
+                    {
+                     before(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleVirtualNode_in_rule__Node__Alternatives4211);
+                    ruleVirtualNode();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNodeAccess().getVirtualNodeParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2009:6: ( rulePhysicalNode )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2009:6: ( rulePhysicalNode )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2010:1: rulePhysicalNode
+                    {
+                     before(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePhysicalNode_in_rule__Node__Alternatives4228);
+                    rulePhysicalNode();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNodeAccess().getPhysicalNodeParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Node__Alternatives"
+
+
+    // $ANTLR start "rule__Link__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2020:1: rule__Link__Alternatives : ( ( rulePhysicalLink ) | ( ruleVirtualLink ) );
+    public final void rule__Link__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2024:1: ( ( rulePhysicalLink ) | ( ruleVirtualLink ) )
+            int alt3=2;
+            int LA3_0 = input.LA(1);
+
+            if ( (LA3_0==128) ) {
+                alt3=1;
+            }
+            else if ( (LA3_0==130) ) {
+                alt3=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+            switch (alt3) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2025:1: ( rulePhysicalLink )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2025:1: ( rulePhysicalLink )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2026:1: rulePhysicalLink
+                    {
+                     before(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePhysicalLink_in_rule__Link__Alternatives4260);
+                    rulePhysicalLink();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getLinkAccess().getPhysicalLinkParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2031:6: ( ruleVirtualLink )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2031:6: ( ruleVirtualLink )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2032:1: ruleVirtualLink
+                    {
+                     before(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleVirtualLink_in_rule__Link__Alternatives4277);
+                    ruleVirtualLink();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getLinkAccess().getVirtualLinkParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Link__Alternatives"
+
+
+    // $ANTLR start "rule__Dependency__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2042:1: rule__Dependency__Alternatives : ( ( ruleConstantDoubleVariable ) | ( ruleConstantLongVariable ) | ( ruleRandomVariable ) | ( ruleContinuousFunction ) | ( ruleDiscreteFunction ) );
+    public final void rule__Dependency__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2046:1: ( ( ruleConstantDoubleVariable ) | ( ruleConstantLongVariable ) | ( ruleRandomVariable ) | ( ruleContinuousFunction ) | ( ruleDiscreteFunction ) )
+            int alt4=5;
+            switch ( input.LA(1) ) {
+            case 88:
+                {
+                alt4=1;
+                }
+                break;
+            case 90:
+                {
+                alt4=2;
+                }
+                break;
+            case 91:
+                {
+                alt4=3;
+                }
+                break;
+            case 93:
+                {
+                alt4=4;
+                }
+                break;
+            case 96:
+                {
+                alt4=5;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt4) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2047:1: ( ruleConstantDoubleVariable )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2047:1: ( ruleConstantDoubleVariable )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2048:1: ruleConstantDoubleVariable
+                    {
+                     before(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleConstantDoubleVariable_in_rule__Dependency__Alternatives4309);
+                    ruleConstantDoubleVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDependencyAccess().getConstantDoubleVariableParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2053:6: ( ruleConstantLongVariable )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2053:6: ( ruleConstantLongVariable )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2054:1: ruleConstantLongVariable
+                    {
+                     before(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleConstantLongVariable_in_rule__Dependency__Alternatives4326);
+                    ruleConstantLongVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDependencyAccess().getConstantLongVariableParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2059:6: ( ruleRandomVariable )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2059:6: ( ruleRandomVariable )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2060:1: ruleRandomVariable
+                    {
+                     before(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleRandomVariable_in_rule__Dependency__Alternatives4343);
+                    ruleRandomVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDependencyAccess().getRandomVariableParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2065:6: ( ruleContinuousFunction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2065:6: ( ruleContinuousFunction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2066:1: ruleContinuousFunction
+                    {
+                     before(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleContinuousFunction_in_rule__Dependency__Alternatives4360);
+                    ruleContinuousFunction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDependencyAccess().getContinuousFunctionParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2071:6: ( ruleDiscreteFunction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2071:6: ( ruleDiscreteFunction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2072:1: ruleDiscreteFunction
+                    {
+                     before(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleDiscreteFunction_in_rule__Dependency__Alternatives4377);
+                    ruleDiscreteFunction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDependencyAccess().getDiscreteFunctionParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Dependency__Alternatives"
+
+
+    // $ANTLR start "rule__Function__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2082:1: rule__Function__Alternatives : ( ( ruleContinuousFunction ) | ( ruleDiscreteFunction ) );
+    public final void rule__Function__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2086:1: ( ( ruleContinuousFunction ) | ( ruleDiscreteFunction ) )
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==93) ) {
+                alt5=1;
+            }
+            else if ( (LA5_0==96) ) {
+                alt5=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2087:1: ( ruleContinuousFunction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2087:1: ( ruleContinuousFunction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2088:1: ruleContinuousFunction
+                    {
+                     before(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleContinuousFunction_in_rule__Function__Alternatives4409);
+                    ruleContinuousFunction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFunctionAccess().getContinuousFunctionParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2093:6: ( ruleDiscreteFunction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2093:6: ( ruleDiscreteFunction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2094:1: ruleDiscreteFunction
+                    {
+                     before(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleDiscreteFunction_in_rule__Function__Alternatives4426);
+                    ruleDiscreteFunction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFunctionAccess().getDiscreteFunctionParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Function__Alternatives"
+
+
+    // $ANTLR start "rule__AbstractAction__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2104:1: rule__AbstractAction__Alternatives : ( ( ruleBranchAction ) | ( ruleLoopAction ) | ( ruleSequenceAction ) | ( ruleStartAction ) | ( ruleStopAction ) | ( ruleTransmitAction ) | ( ruleWaitAction ) );
+    public final void rule__AbstractAction__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2108:1: ( ( ruleBranchAction ) | ( ruleLoopAction ) | ( ruleSequenceAction ) | ( ruleStartAction ) | ( ruleStopAction ) | ( ruleTransmitAction ) | ( ruleWaitAction ) )
+            int alt6=7;
+            switch ( input.LA(1) ) {
+            case 109:
+                {
+                alt6=1;
+                }
+                break;
+            case 111:
+                {
+                alt6=2;
+                }
+                break;
+            case 113:
+                {
+                alt6=3;
+                }
+                break;
+            case 114:
+                {
+                alt6=4;
+                }
+                break;
+            case 115:
+                {
+                alt6=5;
+                }
+                break;
+            case 116:
+                {
+                alt6=6;
+                }
+                break;
+            case 118:
+                {
+                alt6=7;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt6) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2109:1: ( ruleBranchAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2109:1: ( ruleBranchAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2110:1: ruleBranchAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleBranchAction_in_rule__AbstractAction__Alternatives4458);
+                    ruleBranchAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getBranchActionParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2115:6: ( ruleLoopAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2115:6: ( ruleLoopAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2116:1: ruleLoopAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleLoopAction_in_rule__AbstractAction__Alternatives4475);
+                    ruleLoopAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getLoopActionParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2121:6: ( ruleSequenceAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2121:6: ( ruleSequenceAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2122:1: ruleSequenceAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleSequenceAction_in_rule__AbstractAction__Alternatives4492);
+                    ruleSequenceAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getSequenceActionParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2127:6: ( ruleStartAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2127:6: ( ruleStartAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2128:1: ruleStartAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStartAction_in_rule__AbstractAction__Alternatives4509);
+                    ruleStartAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getStartActionParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2133:6: ( ruleStopAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2133:6: ( ruleStopAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2134:1: ruleStopAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleStopAction_in_rule__AbstractAction__Alternatives4526);
+                    ruleStopAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getStopActionParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2139:6: ( ruleTransmitAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2139:6: ( ruleTransmitAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2140:1: ruleTransmitAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleTransmitAction_in_rule__AbstractAction__Alternatives4543);
+                    ruleTransmitAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getTransmitActionParserRuleCall_5()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2145:6: ( ruleWaitAction )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2145:6: ( ruleWaitAction )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2146:1: ruleWaitAction
+                    {
+                     before(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleWaitAction_in_rule__AbstractAction__Alternatives4560);
+                    ruleWaitAction();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getAbstractActionAccess().getWaitActionParserRuleCall_6()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AbstractAction__Alternatives"
+
+
+    // $ANTLR start "rule__PerformanceSpecification__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2156:1: rule__PerformanceSpecification__Alternatives : ( ( ruleIntermediateNodePerfSpec ) | ( ruleEndNodePerfSpec ) | ( ruleLinkPerfSpec ) | ( ruleNetworkInterfacePerfSpec ) );
+    public final void rule__PerformanceSpecification__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2160:1: ( ( ruleIntermediateNodePerfSpec ) | ( ruleEndNodePerfSpec ) | ( ruleLinkPerfSpec ) | ( ruleNetworkInterfacePerfSpec ) )
+            int alt7=4;
+            switch ( input.LA(1) ) {
+            case 42:
+                {
+                alt7=1;
+                }
+                break;
+            case 51:
+                {
+                alt7=2;
+                }
+                break;
+            case 38:
+            case 41:
+                {
+                alt7=3;
+                }
+                break;
+            case 32:
+            case 37:
+                {
+                alt7=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2161:1: ( ruleIntermediateNodePerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2161:1: ( ruleIntermediateNodePerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2162:1: ruleIntermediateNodePerfSpec
+                    {
+                     before(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleIntermediateNodePerfSpec_in_rule__PerformanceSpecification__Alternatives4592);
+                    ruleIntermediateNodePerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getPerformanceSpecificationAccess().getIntermediateNodePerfSpecParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2167:6: ( ruleEndNodePerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2167:6: ( ruleEndNodePerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2168:1: ruleEndNodePerfSpec
+                    {
+                     before(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleEndNodePerfSpec_in_rule__PerformanceSpecification__Alternatives4609);
+                    ruleEndNodePerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getPerformanceSpecificationAccess().getEndNodePerfSpecParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2173:6: ( ruleLinkPerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2173:6: ( ruleLinkPerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2174:1: ruleLinkPerfSpec
+                    {
+                     before(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleLinkPerfSpec_in_rule__PerformanceSpecification__Alternatives4626);
+                    ruleLinkPerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getPerformanceSpecificationAccess().getLinkPerfSpecParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2179:6: ( ruleNetworkInterfacePerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2179:6: ( ruleNetworkInterfacePerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2180:1: ruleNetworkInterfacePerfSpec
+                    {
+                     before(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleNetworkInterfacePerfSpec_in_rule__PerformanceSpecification__Alternatives4643);
+                    ruleNetworkInterfacePerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getPerformanceSpecificationAccess().getNetworkInterfacePerfSpecParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PerformanceSpecification__Alternatives"
+
+
+    // $ANTLR start "rule__NetworkInterfacePerfSpec__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2190:1: rule__NetworkInterfacePerfSpec__Alternatives : ( ( rulePhysicalNetworkInterfacePerfSpec ) | ( ruleVirtualNetworkInterfacePerfSpec ) );
+    public final void rule__NetworkInterfacePerfSpec__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2194:1: ( ( rulePhysicalNetworkInterfacePerfSpec ) | ( ruleVirtualNetworkInterfacePerfSpec ) )
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==37) ) {
+                alt8=1;
+            }
+            else if ( (LA8_0==32) ) {
+                alt8=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2195:1: ( rulePhysicalNetworkInterfacePerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2195:1: ( rulePhysicalNetworkInterfacePerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2196:1: rulePhysicalNetworkInterfacePerfSpec
+                    {
+                     before(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_rule__NetworkInterfacePerfSpec__Alternatives4675);
+                    rulePhysicalNetworkInterfacePerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2201:6: ( ruleVirtualNetworkInterfacePerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2201:6: ( ruleVirtualNetworkInterfacePerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2202:1: ruleVirtualNetworkInterfacePerfSpec
+                    {
+                     before(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleVirtualNetworkInterfacePerfSpec_in_rule__NetworkInterfacePerfSpec__Alternatives4692);
+                    ruleVirtualNetworkInterfacePerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInterfacePerfSpec__Alternatives"
+
+
+    // $ANTLR start "rule__LinkPerfSpec__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2212:1: rule__LinkPerfSpec__Alternatives : ( ( rulePhysicalLinkPerfSpec ) | ( ruleVirtualLinkPerfSpec ) );
+    public final void rule__LinkPerfSpec__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2216:1: ( ( rulePhysicalLinkPerfSpec ) | ( ruleVirtualLinkPerfSpec ) )
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==41) ) {
+                alt9=1;
+            }
+            else if ( (LA9_0==38) ) {
+                alt9=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2217:1: ( rulePhysicalLinkPerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2217:1: ( rulePhysicalLinkPerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2218:1: rulePhysicalLinkPerfSpec
+                    {
+                     before(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePhysicalLinkPerfSpec_in_rule__LinkPerfSpec__Alternatives4724);
+                    rulePhysicalLinkPerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getLinkPerfSpecAccess().getPhysicalLinkPerfSpecParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2223:6: ( ruleVirtualLinkPerfSpec )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2223:6: ( ruleVirtualLinkPerfSpec )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2224:1: ruleVirtualLinkPerfSpec
+                    {
+                     before(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleVirtualLinkPerfSpec_in_rule__LinkPerfSpec__Alternatives4741);
+                    ruleVirtualLinkPerfSpec();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getLinkPerfSpecAccess().getVirtualLinkPerfSpecParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LinkPerfSpec__Alternatives"
+
+
+    // $ANTLR start "rule__NetworkInterface__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2234:1: rule__NetworkInterface__Alternatives : ( ( rulePhysicalNetworkInterface ) | ( ruleVirtualNetworkInterface ) );
+    public final void rule__NetworkInterface__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2238:1: ( ( rulePhysicalNetworkInterface ) | ( ruleVirtualNetworkInterface ) )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==156) ) {
+                alt10=1;
+            }
+            else if ( (LA10_0==158) ) {
+                alt10=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2239:1: ( rulePhysicalNetworkInterface )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2239:1: ( rulePhysicalNetworkInterface )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2240:1: rulePhysicalNetworkInterface
+                    {
+                     before(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); 
+                    pushFollow(FollowSets000.FOLLOW_rulePhysicalNetworkInterface_in_rule__NetworkInterface__Alternatives4773);
+                    rulePhysicalNetworkInterface();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNetworkInterfaceAccess().getPhysicalNetworkInterfaceParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2245:6: ( ruleVirtualNetworkInterface )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2245:6: ( ruleVirtualNetworkInterface )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2246:1: ruleVirtualNetworkInterface
+                    {
+                     before(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); 
+                    pushFollow(FollowSets000.FOLLOW_ruleVirtualNetworkInterface_in_rule__NetworkInterface__Alternatives4790);
+                    ruleVirtualNetworkInterface();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getNetworkInterfaceAccess().getVirtualNetworkInterfaceParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInterface__Alternatives"
+
+
+    // $ANTLR start "rule__EString__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2256:1: rule__EString__Alternatives : ( ( RULE_STRING ) | ( RULE_ID ) );
+    public final void rule__EString__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2260:1: ( ( RULE_STRING ) | ( RULE_ID ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==RULE_STRING) ) {
+                alt11=1;
+            }
+            else if ( (LA11_0==RULE_ID) ) {
+                alt11=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2261:1: ( RULE_STRING )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2261:1: ( RULE_STRING )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2262:1: RULE_STRING
+                    {
+                     before(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+                    match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__EString__Alternatives4822); 
+                     after(grammarAccess.getEStringAccess().getSTRINGTerminalRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2267:6: ( RULE_ID )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2267:6: ( RULE_ID )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2268:1: RULE_ID
+                    {
+                     before(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+                    match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__EString__Alternatives4839); 
+                     after(grammarAccess.getEStringAccess().getIDTerminalRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EString__Alternatives"
+
+
+    // $ANTLR start "rule__EBoolean__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2278:1: rule__EBoolean__Alternatives : ( ( 'true' ) | ( 'false' ) );
+    public final void rule__EBoolean__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2282:1: ( ( 'true' ) | ( 'false' ) )
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==11) ) {
+                alt12=1;
+            }
+            else if ( (LA12_0==12) ) {
+                alt12=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 12, 0, input);
+
+                throw nvae;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2283:1: ( 'true' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2283:1: ( 'true' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2284:1: 'true'
+                    {
+                     before(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); 
+                    match(input,11,FollowSets000.FOLLOW_11_in_rule__EBoolean__Alternatives4872); 
+                     after(grammarAccess.getEBooleanAccess().getTrueKeyword_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2291:6: ( 'false' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2291:6: ( 'false' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2292:1: 'false'
+                    {
+                     before(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); 
+                    match(input,12,FollowSets000.FOLLOW_12_in_rule__EBoolean__Alternatives4892); 
+                     after(grammarAccess.getEBooleanAccess().getFalseKeyword_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EBoolean__Alternatives"
+
+
+    // $ANTLR start "rule__EFloat__Alternatives_4_0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2304:1: rule__EFloat__Alternatives_4_0 : ( ( 'E' ) | ( 'e' ) );
+    public final void rule__EFloat__Alternatives_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2308:1: ( ( 'E' ) | ( 'e' ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==13) ) {
+                alt13=1;
+            }
+            else if ( (LA13_0==14) ) {
+                alt13=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2309:1: ( 'E' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2309:1: ( 'E' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2310:1: 'E'
+                    {
+                     before(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); 
+                    match(input,13,FollowSets000.FOLLOW_13_in_rule__EFloat__Alternatives_4_04927); 
+                     after(grammarAccess.getEFloatAccess().getEKeyword_4_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2317:6: ( 'e' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2317:6: ( 'e' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2318:1: 'e'
+                    {
+                     before(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); 
+                    match(input,14,FollowSets000.FOLLOW_14_in_rule__EFloat__Alternatives_4_04947); 
+                     after(grammarAccess.getEFloatAccess().getEKeyword_4_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Alternatives_4_0"
+
+
+    // $ANTLR start "rule__EDouble__Alternatives_4_0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2330:1: rule__EDouble__Alternatives_4_0 : ( ( 'E' ) | ( 'e' ) );
+    public final void rule__EDouble__Alternatives_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2334:1: ( ( 'E' ) | ( 'e' ) )
+            int alt14=2;
+            int LA14_0 = input.LA(1);
+
+            if ( (LA14_0==13) ) {
+                alt14=1;
+            }
+            else if ( (LA14_0==14) ) {
+                alt14=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+            switch (alt14) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2335:1: ( 'E' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2335:1: ( 'E' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2336:1: 'E'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+                    match(input,13,FollowSets000.FOLLOW_13_in_rule__EDouble__Alternatives_4_04982); 
+                     after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2343:6: ( 'e' )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2343:6: ( 'e' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2344:1: 'e'
+                    {
+                     before(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+                    match(input,14,FollowSets000.FOLLOW_14_in_rule__EDouble__Alternatives_4_05002); 
+                     after(grammarAccess.getEDoubleAccess().getEKeyword_4_0_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Alternatives_4_0"
+
+
+    // $ANTLR start "rule__UnitPrefix__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2356:1: rule__UnitPrefix__Alternatives : ( ( ( 'none' ) ) | ( ( 'K' ) ) | ( ( 'M' ) ) | ( ( 'G' ) ) );
+    public final void rule__UnitPrefix__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2360:1: ( ( ( 'none' ) ) | ( ( 'K' ) ) | ( ( 'M' ) ) | ( ( 'G' ) ) )
+            int alt15=4;
+            switch ( input.LA(1) ) {
+            case 15:
+                {
+                alt15=1;
+                }
+                break;
+            case 16:
+                {
+                alt15=2;
+                }
+                break;
+            case 17:
+                {
+                alt15=3;
+                }
+                break;
+            case 18:
+                {
+                alt15=4;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt15) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2361:1: ( ( 'none' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2361:1: ( ( 'none' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2362:1: ( 'none' )
+                    {
+                     before(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2363:1: ( 'none' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2363:3: 'none'
+                    {
+                    match(input,15,FollowSets000.FOLLOW_15_in_rule__UnitPrefix__Alternatives5037); 
+
+                    }
+
+                     after(grammarAccess.getUnitPrefixAccess().getNoneEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2368:6: ( ( 'K' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2368:6: ( ( 'K' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2369:1: ( 'K' )
+                    {
+                     before(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2370:1: ( 'K' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2370:3: 'K'
+                    {
+                    match(input,16,FollowSets000.FOLLOW_16_in_rule__UnitPrefix__Alternatives5058); 
+
+                    }
+
+                     after(grammarAccess.getUnitPrefixAccess().getKEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2375:6: ( ( 'M' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2375:6: ( ( 'M' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2376:1: ( 'M' )
+                    {
+                     before(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2377:1: ( 'M' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2377:3: 'M'
+                    {
+                    match(input,17,FollowSets000.FOLLOW_17_in_rule__UnitPrefix__Alternatives5079); 
+
+                    }
+
+                     after(grammarAccess.getUnitPrefixAccess().getMEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2382:6: ( ( 'G' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2382:6: ( ( 'G' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2383:1: ( 'G' )
+                    {
+                     before(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2384:1: ( 'G' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2384:3: 'G'
+                    {
+                    match(input,18,FollowSets000.FOLLOW_18_in_rule__UnitPrefix__Alternatives5100); 
+
+                    }
+
+                     after(grammarAccess.getUnitPrefixAccess().getGEnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UnitPrefix__Alternatives"
+
+
+    // $ANTLR start "rule__Speed__Alternatives"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2394:1: rule__Speed__Alternatives : ( ( ( 'BytesPerSec' ) ) | ( ( 'bitsPerSec' ) ) | ( ( 'packetsPerSec' ) ) );
+    public final void rule__Speed__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2398:1: ( ( ( 'BytesPerSec' ) ) | ( ( 'bitsPerSec' ) ) | ( ( 'packetsPerSec' ) ) )
+            int alt16=3;
+            switch ( input.LA(1) ) {
+            case 19:
+                {
+                alt16=1;
+                }
+                break;
+            case 20:
+                {
+                alt16=2;
+                }
+                break;
+            case 21:
+                {
+                alt16=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 16, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt16) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2399:1: ( ( 'BytesPerSec' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2399:1: ( ( 'BytesPerSec' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2400:1: ( 'BytesPerSec' )
+                    {
+                     before(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2401:1: ( 'BytesPerSec' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2401:3: 'BytesPerSec'
+                    {
+                    match(input,19,FollowSets000.FOLLOW_19_in_rule__Speed__Alternatives5136); 
+
+                    }
+
+                     after(grammarAccess.getSpeedAccess().getBytesPerSecEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2406:6: ( ( 'bitsPerSec' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2406:6: ( ( 'bitsPerSec' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2407:1: ( 'bitsPerSec' )
+                    {
+                     before(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2408:1: ( 'bitsPerSec' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2408:3: 'bitsPerSec'
+                    {
+                    match(input,20,FollowSets000.FOLLOW_20_in_rule__Speed__Alternatives5157); 
+
+                    }
+
+                     after(grammarAccess.getSpeedAccess().getBitsPerSecEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2413:6: ( ( 'packetsPerSec' ) )
+                    {
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2413:6: ( ( 'packetsPerSec' ) )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2414:1: ( 'packetsPerSec' )
+                    {
+                     before(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); 
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2415:1: ( 'packetsPerSec' )
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2415:3: 'packetsPerSec'
+                    {
+                    match(input,21,FollowSets000.FOLLOW_21_in_rule__Speed__Alternatives5178); 
+
+                    }
+
+                     after(grammarAccess.getSpeedAccess().getPacketsPerSecEnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Speed__Alternatives"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2427:1: rule__NetworkInfrastructure__Group__0 : rule__NetworkInfrastructure__Group__0__Impl rule__NetworkInfrastructure__Group__1 ;
+    public final void rule__NetworkInfrastructure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2431:1: ( rule__NetworkInfrastructure__Group__0__Impl rule__NetworkInfrastructure__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2432:2: rule__NetworkInfrastructure__Group__0__Impl rule__NetworkInfrastructure__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__0__Impl_in_rule__NetworkInfrastructure__Group__05211);
+            rule__NetworkInfrastructure__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__1_in_rule__NetworkInfrastructure__Group__05214);
+            rule__NetworkInfrastructure__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__0"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2439:1: rule__NetworkInfrastructure__Group__0__Impl : ( 'NetworkInfrastructure' ) ;
+    public final void rule__NetworkInfrastructure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2443:1: ( ( 'NetworkInfrastructure' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2444:1: ( 'NetworkInfrastructure' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2444:1: ( 'NetworkInfrastructure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2445:1: 'NetworkInfrastructure'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); 
+            match(input,22,FollowSets000.FOLLOW_22_in_rule__NetworkInfrastructure__Group__0__Impl5242); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getNetworkInfrastructureKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2458:1: rule__NetworkInfrastructure__Group__1 : rule__NetworkInfrastructure__Group__1__Impl rule__NetworkInfrastructure__Group__2 ;
+    public final void rule__NetworkInfrastructure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2462:1: ( rule__NetworkInfrastructure__Group__1__Impl rule__NetworkInfrastructure__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2463:2: rule__NetworkInfrastructure__Group__1__Impl rule__NetworkInfrastructure__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__1__Impl_in_rule__NetworkInfrastructure__Group__15273);
+            rule__NetworkInfrastructure__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__2_in_rule__NetworkInfrastructure__Group__15276);
+            rule__NetworkInfrastructure__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__1"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2470:1: rule__NetworkInfrastructure__Group__1__Impl : ( '{' ) ;
+    public final void rule__NetworkInfrastructure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2474:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2475:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2475:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2476:1: '{'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkInfrastructure__Group__1__Impl5304); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2489:1: rule__NetworkInfrastructure__Group__2 : rule__NetworkInfrastructure__Group__2__Impl rule__NetworkInfrastructure__Group__3 ;
+    public final void rule__NetworkInfrastructure__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2493:1: ( rule__NetworkInfrastructure__Group__2__Impl rule__NetworkInfrastructure__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2494:2: rule__NetworkInfrastructure__Group__2__Impl rule__NetworkInfrastructure__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__2__Impl_in_rule__NetworkInfrastructure__Group__25335);
+            rule__NetworkInfrastructure__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__3_in_rule__NetworkInfrastructure__Group__25338);
+            rule__NetworkInfrastructure__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__2"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2501:1: rule__NetworkInfrastructure__Group__2__Impl : ( 'dataCenterName' ) ;
+    public final void rule__NetworkInfrastructure__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2505:1: ( ( 'dataCenterName' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2506:1: ( 'dataCenterName' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2506:1: ( 'dataCenterName' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2507:1: 'dataCenterName'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); 
+            match(input,24,FollowSets000.FOLLOW_24_in_rule__NetworkInfrastructure__Group__2__Impl5366); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2520:1: rule__NetworkInfrastructure__Group__3 : rule__NetworkInfrastructure__Group__3__Impl rule__NetworkInfrastructure__Group__4 ;
+    public final void rule__NetworkInfrastructure__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2524:1: ( rule__NetworkInfrastructure__Group__3__Impl rule__NetworkInfrastructure__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2525:2: rule__NetworkInfrastructure__Group__3__Impl rule__NetworkInfrastructure__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__3__Impl_in_rule__NetworkInfrastructure__Group__35397);
+            rule__NetworkInfrastructure__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__4_in_rule__NetworkInfrastructure__Group__35400);
+            rule__NetworkInfrastructure__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__3"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2532:1: rule__NetworkInfrastructure__Group__3__Impl : ( ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 ) ) ;
+    public final void rule__NetworkInfrastructure__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2536:1: ( ( ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2537:1: ( ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2537:1: ( ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2538:1: ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2539:1: ( rule__NetworkInfrastructure__DataCenterNameAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2539:2: rule__NetworkInfrastructure__DataCenterNameAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__DataCenterNameAssignment_3_in_rule__NetworkInfrastructure__Group__3__Impl5427);
+            rule__NetworkInfrastructure__DataCenterNameAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2549:1: rule__NetworkInfrastructure__Group__4 : rule__NetworkInfrastructure__Group__4__Impl rule__NetworkInfrastructure__Group__5 ;
+    public final void rule__NetworkInfrastructure__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2553:1: ( rule__NetworkInfrastructure__Group__4__Impl rule__NetworkInfrastructure__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2554:2: rule__NetworkInfrastructure__Group__4__Impl rule__NetworkInfrastructure__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__4__Impl_in_rule__NetworkInfrastructure__Group__45457);
+            rule__NetworkInfrastructure__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__5_in_rule__NetworkInfrastructure__Group__45460);
+            rule__NetworkInfrastructure__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__4"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2561:1: rule__NetworkInfrastructure__Group__4__Impl : ( 'dataCenterAltName' ) ;
+    public final void rule__NetworkInfrastructure__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2565:1: ( ( 'dataCenterAltName' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2566:1: ( 'dataCenterAltName' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2566:1: ( 'dataCenterAltName' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2567:1: 'dataCenterAltName'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); 
+            match(input,25,FollowSets000.FOLLOW_25_in_rule__NetworkInfrastructure__Group__4__Impl5488); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2580:1: rule__NetworkInfrastructure__Group__5 : rule__NetworkInfrastructure__Group__5__Impl rule__NetworkInfrastructure__Group__6 ;
+    public final void rule__NetworkInfrastructure__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2584:1: ( rule__NetworkInfrastructure__Group__5__Impl rule__NetworkInfrastructure__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2585:2: rule__NetworkInfrastructure__Group__5__Impl rule__NetworkInfrastructure__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__5__Impl_in_rule__NetworkInfrastructure__Group__55519);
+            rule__NetworkInfrastructure__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__6_in_rule__NetworkInfrastructure__Group__55522);
+            rule__NetworkInfrastructure__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__5"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2592:1: rule__NetworkInfrastructure__Group__5__Impl : ( ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 ) ) ;
+    public final void rule__NetworkInfrastructure__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2596:1: ( ( ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2597:1: ( ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2597:1: ( ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2598:1: ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2599:1: ( rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2599:2: rule__NetworkInfrastructure__DataCenterAltNameAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__DataCenterAltNameAssignment_5_in_rule__NetworkInfrastructure__Group__5__Impl5549);
+            rule__NetworkInfrastructure__DataCenterAltNameAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2609:1: rule__NetworkInfrastructure__Group__6 : rule__NetworkInfrastructure__Group__6__Impl rule__NetworkInfrastructure__Group__7 ;
+    public final void rule__NetworkInfrastructure__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2613:1: ( rule__NetworkInfrastructure__Group__6__Impl rule__NetworkInfrastructure__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2614:2: rule__NetworkInfrastructure__Group__6__Impl rule__NetworkInfrastructure__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__6__Impl_in_rule__NetworkInfrastructure__Group__65579);
+            rule__NetworkInfrastructure__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__7_in_rule__NetworkInfrastructure__Group__65582);
+            rule__NetworkInfrastructure__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__6"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2621:1: rule__NetworkInfrastructure__Group__6__Impl : ( 'traffic' ) ;
+    public final void rule__NetworkInfrastructure__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2625:1: ( ( 'traffic' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2626:1: ( 'traffic' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2626:1: ( 'traffic' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2627:1: 'traffic'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); 
+            match(input,26,FollowSets000.FOLLOW_26_in_rule__NetworkInfrastructure__Group__6__Impl5610); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getTrafficKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__6__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2640:1: rule__NetworkInfrastructure__Group__7 : rule__NetworkInfrastructure__Group__7__Impl rule__NetworkInfrastructure__Group__8 ;
+    public final void rule__NetworkInfrastructure__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2644:1: ( rule__NetworkInfrastructure__Group__7__Impl rule__NetworkInfrastructure__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2645:2: rule__NetworkInfrastructure__Group__7__Impl rule__NetworkInfrastructure__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__7__Impl_in_rule__NetworkInfrastructure__Group__75641);
+            rule__NetworkInfrastructure__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__8_in_rule__NetworkInfrastructure__Group__75644);
+            rule__NetworkInfrastructure__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__7"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2652:1: rule__NetworkInfrastructure__Group__7__Impl : ( ( rule__NetworkInfrastructure__TrafficAssignment_7 ) ) ;
+    public final void rule__NetworkInfrastructure__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2656:1: ( ( ( rule__NetworkInfrastructure__TrafficAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2657:1: ( ( rule__NetworkInfrastructure__TrafficAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2657:1: ( ( rule__NetworkInfrastructure__TrafficAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2658:1: ( rule__NetworkInfrastructure__TrafficAssignment_7 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2659:1: ( rule__NetworkInfrastructure__TrafficAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2659:2: rule__NetworkInfrastructure__TrafficAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__TrafficAssignment_7_in_rule__NetworkInfrastructure__Group__7__Impl5671);
+            rule__NetworkInfrastructure__TrafficAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getTrafficAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__7__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2669:1: rule__NetworkInfrastructure__Group__8 : rule__NetworkInfrastructure__Group__8__Impl rule__NetworkInfrastructure__Group__9 ;
+    public final void rule__NetworkInfrastructure__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2673:1: ( rule__NetworkInfrastructure__Group__8__Impl rule__NetworkInfrastructure__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2674:2: rule__NetworkInfrastructure__Group__8__Impl rule__NetworkInfrastructure__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__8__Impl_in_rule__NetworkInfrastructure__Group__85701);
+            rule__NetworkInfrastructure__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__9_in_rule__NetworkInfrastructure__Group__85704);
+            rule__NetworkInfrastructure__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__8"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2681:1: rule__NetworkInfrastructure__Group__8__Impl : ( 'structure' ) ;
+    public final void rule__NetworkInfrastructure__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2685:1: ( ( 'structure' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2686:1: ( 'structure' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2686:1: ( 'structure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2687:1: 'structure'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); 
+            match(input,27,FollowSets000.FOLLOW_27_in_rule__NetworkInfrastructure__Group__8__Impl5732); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getStructureKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__8__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2700:1: rule__NetworkInfrastructure__Group__9 : rule__NetworkInfrastructure__Group__9__Impl rule__NetworkInfrastructure__Group__10 ;
+    public final void rule__NetworkInfrastructure__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2704:1: ( rule__NetworkInfrastructure__Group__9__Impl rule__NetworkInfrastructure__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2705:2: rule__NetworkInfrastructure__Group__9__Impl rule__NetworkInfrastructure__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__9__Impl_in_rule__NetworkInfrastructure__Group__95763);
+            rule__NetworkInfrastructure__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__10_in_rule__NetworkInfrastructure__Group__95766);
+            rule__NetworkInfrastructure__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__9"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2712:1: rule__NetworkInfrastructure__Group__9__Impl : ( ( rule__NetworkInfrastructure__StructureAssignment_9 ) ) ;
+    public final void rule__NetworkInfrastructure__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2716:1: ( ( ( rule__NetworkInfrastructure__StructureAssignment_9 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2717:1: ( ( rule__NetworkInfrastructure__StructureAssignment_9 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2717:1: ( ( rule__NetworkInfrastructure__StructureAssignment_9 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2718:1: ( rule__NetworkInfrastructure__StructureAssignment_9 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2719:1: ( rule__NetworkInfrastructure__StructureAssignment_9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2719:2: rule__NetworkInfrastructure__StructureAssignment_9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__StructureAssignment_9_in_rule__NetworkInfrastructure__Group__9__Impl5793);
+            rule__NetworkInfrastructure__StructureAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getStructureAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__9__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2729:1: rule__NetworkInfrastructure__Group__10 : rule__NetworkInfrastructure__Group__10__Impl rule__NetworkInfrastructure__Group__11 ;
+    public final void rule__NetworkInfrastructure__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2733:1: ( rule__NetworkInfrastructure__Group__10__Impl rule__NetworkInfrastructure__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2734:2: rule__NetworkInfrastructure__Group__10__Impl rule__NetworkInfrastructure__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__10__Impl_in_rule__NetworkInfrastructure__Group__105823);
+            rule__NetworkInfrastructure__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__11_in_rule__NetworkInfrastructure__Group__105826);
+            rule__NetworkInfrastructure__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__10"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2741:1: rule__NetworkInfrastructure__Group__10__Impl : ( 'configuration' ) ;
+    public final void rule__NetworkInfrastructure__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2745:1: ( ( 'configuration' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2746:1: ( 'configuration' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2746:1: ( 'configuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2747:1: 'configuration'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); 
+            match(input,28,FollowSets000.FOLLOW_28_in_rule__NetworkInfrastructure__Group__10__Impl5854); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__10__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2760:1: rule__NetworkInfrastructure__Group__11 : rule__NetworkInfrastructure__Group__11__Impl rule__NetworkInfrastructure__Group__12 ;
+    public final void rule__NetworkInfrastructure__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2764:1: ( rule__NetworkInfrastructure__Group__11__Impl rule__NetworkInfrastructure__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2765:2: rule__NetworkInfrastructure__Group__11__Impl rule__NetworkInfrastructure__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__11__Impl_in_rule__NetworkInfrastructure__Group__115885);
+            rule__NetworkInfrastructure__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__12_in_rule__NetworkInfrastructure__Group__115888);
+            rule__NetworkInfrastructure__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__11"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2772:1: rule__NetworkInfrastructure__Group__11__Impl : ( ( rule__NetworkInfrastructure__ConfigurationAssignment_11 ) ) ;
+    public final void rule__NetworkInfrastructure__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2776:1: ( ( ( rule__NetworkInfrastructure__ConfigurationAssignment_11 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2777:1: ( ( rule__NetworkInfrastructure__ConfigurationAssignment_11 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2777:1: ( ( rule__NetworkInfrastructure__ConfigurationAssignment_11 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2778:1: ( rule__NetworkInfrastructure__ConfigurationAssignment_11 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2779:1: ( rule__NetworkInfrastructure__ConfigurationAssignment_11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2779:2: rule__NetworkInfrastructure__ConfigurationAssignment_11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__ConfigurationAssignment_11_in_rule__NetworkInfrastructure__Group__11__Impl5915);
+            rule__NetworkInfrastructure__ConfigurationAssignment_11();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationAssignment_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__11__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2789:1: rule__NetworkInfrastructure__Group__12 : rule__NetworkInfrastructure__Group__12__Impl rule__NetworkInfrastructure__Group__13 ;
+    public final void rule__NetworkInfrastructure__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2793:1: ( rule__NetworkInfrastructure__Group__12__Impl rule__NetworkInfrastructure__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2794:2: rule__NetworkInfrastructure__Group__12__Impl rule__NetworkInfrastructure__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__12__Impl_in_rule__NetworkInfrastructure__Group__125945);
+            rule__NetworkInfrastructure__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__13_in_rule__NetworkInfrastructure__Group__125948);
+            rule__NetworkInfrastructure__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__12"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2801:1: rule__NetworkInfrastructure__Group__12__Impl : ( ( rule__NetworkInfrastructure__Group_12__0 )? ) ;
+    public final void rule__NetworkInfrastructure__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2805:1: ( ( ( rule__NetworkInfrastructure__Group_12__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2806:1: ( ( rule__NetworkInfrastructure__Group_12__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2806:1: ( ( rule__NetworkInfrastructure__Group_12__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2807:1: ( rule__NetworkInfrastructure__Group_12__0 )?
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2808:1: ( rule__NetworkInfrastructure__Group_12__0 )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==30) ) {
+                alt17=1;
+            }
+            switch (alt17) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2808:2: rule__NetworkInfrastructure__Group_12__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__0_in_rule__NetworkInfrastructure__Group__12__Impl5975);
+                    rule__NetworkInfrastructure__Group_12__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__12__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2818:1: rule__NetworkInfrastructure__Group__13 : rule__NetworkInfrastructure__Group__13__Impl ;
+    public final void rule__NetworkInfrastructure__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2822:1: ( rule__NetworkInfrastructure__Group__13__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2823:2: rule__NetworkInfrastructure__Group__13__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group__13__Impl_in_rule__NetworkInfrastructure__Group__136006);
+            rule__NetworkInfrastructure__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__13"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2829:1: rule__NetworkInfrastructure__Group__13__Impl : ( '}' ) ;
+    public final void rule__NetworkInfrastructure__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2833:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2834:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2834:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2835:1: '}'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkInfrastructure__Group__13__Impl6034); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group__13__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2876:1: rule__NetworkInfrastructure__Group_12__0 : rule__NetworkInfrastructure__Group_12__0__Impl rule__NetworkInfrastructure__Group_12__1 ;
+    public final void rule__NetworkInfrastructure__Group_12__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2880:1: ( rule__NetworkInfrastructure__Group_12__0__Impl rule__NetworkInfrastructure__Group_12__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2881:2: rule__NetworkInfrastructure__Group_12__0__Impl rule__NetworkInfrastructure__Group_12__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__0__Impl_in_rule__NetworkInfrastructure__Group_12__06093);
+            rule__NetworkInfrastructure__Group_12__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__1_in_rule__NetworkInfrastructure__Group_12__06096);
+            rule__NetworkInfrastructure__Group_12__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__0"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2888:1: rule__NetworkInfrastructure__Group_12__0__Impl : ( 'params' ) ;
+    public final void rule__NetworkInfrastructure__Group_12__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2892:1: ( ( 'params' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2893:1: ( 'params' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2893:1: ( 'params' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2894:1: 'params'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); 
+            match(input,30,FollowSets000.FOLLOW_30_in_rule__NetworkInfrastructure__Group_12__0__Impl6124); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getParamsKeyword_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2907:1: rule__NetworkInfrastructure__Group_12__1 : rule__NetworkInfrastructure__Group_12__1__Impl rule__NetworkInfrastructure__Group_12__2 ;
+    public final void rule__NetworkInfrastructure__Group_12__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2911:1: ( rule__NetworkInfrastructure__Group_12__1__Impl rule__NetworkInfrastructure__Group_12__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2912:2: rule__NetworkInfrastructure__Group_12__1__Impl rule__NetworkInfrastructure__Group_12__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__1__Impl_in_rule__NetworkInfrastructure__Group_12__16155);
+            rule__NetworkInfrastructure__Group_12__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__2_in_rule__NetworkInfrastructure__Group_12__16158);
+            rule__NetworkInfrastructure__Group_12__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__1"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2919:1: rule__NetworkInfrastructure__Group_12__1__Impl : ( '{' ) ;
+    public final void rule__NetworkInfrastructure__Group_12__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2923:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2924:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2924:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2925:1: '{'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkInfrastructure__Group_12__1__Impl6186); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getLeftCurlyBracketKeyword_12_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2938:1: rule__NetworkInfrastructure__Group_12__2 : rule__NetworkInfrastructure__Group_12__2__Impl rule__NetworkInfrastructure__Group_12__3 ;
+    public final void rule__NetworkInfrastructure__Group_12__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2942:1: ( rule__NetworkInfrastructure__Group_12__2__Impl rule__NetworkInfrastructure__Group_12__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2943:2: rule__NetworkInfrastructure__Group_12__2__Impl rule__NetworkInfrastructure__Group_12__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__2__Impl_in_rule__NetworkInfrastructure__Group_12__26217);
+            rule__NetworkInfrastructure__Group_12__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__3_in_rule__NetworkInfrastructure__Group_12__26220);
+            rule__NetworkInfrastructure__Group_12__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__2"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2950:1: rule__NetworkInfrastructure__Group_12__2__Impl : ( ( rule__NetworkInfrastructure__ParamsAssignment_12_2 ) ) ;
+    public final void rule__NetworkInfrastructure__Group_12__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2954:1: ( ( ( rule__NetworkInfrastructure__ParamsAssignment_12_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2955:1: ( ( rule__NetworkInfrastructure__ParamsAssignment_12_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2955:1: ( ( rule__NetworkInfrastructure__ParamsAssignment_12_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2956:1: ( rule__NetworkInfrastructure__ParamsAssignment_12_2 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2957:1: ( rule__NetworkInfrastructure__ParamsAssignment_12_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2957:2: rule__NetworkInfrastructure__ParamsAssignment_12_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__ParamsAssignment_12_2_in_rule__NetworkInfrastructure__Group_12__2__Impl6247);
+            rule__NetworkInfrastructure__ParamsAssignment_12_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2967:1: rule__NetworkInfrastructure__Group_12__3 : rule__NetworkInfrastructure__Group_12__3__Impl rule__NetworkInfrastructure__Group_12__4 ;
+    public final void rule__NetworkInfrastructure__Group_12__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2971:1: ( rule__NetworkInfrastructure__Group_12__3__Impl rule__NetworkInfrastructure__Group_12__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2972:2: rule__NetworkInfrastructure__Group_12__3__Impl rule__NetworkInfrastructure__Group_12__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__3__Impl_in_rule__NetworkInfrastructure__Group_12__36277);
+            rule__NetworkInfrastructure__Group_12__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__4_in_rule__NetworkInfrastructure__Group_12__36280);
+            rule__NetworkInfrastructure__Group_12__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__3"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2979:1: rule__NetworkInfrastructure__Group_12__3__Impl : ( ( rule__NetworkInfrastructure__Group_12_3__0 )* ) ;
+    public final void rule__NetworkInfrastructure__Group_12__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2983:1: ( ( ( rule__NetworkInfrastructure__Group_12_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2984:1: ( ( rule__NetworkInfrastructure__Group_12_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2984:1: ( ( rule__NetworkInfrastructure__Group_12_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2985:1: ( rule__NetworkInfrastructure__Group_12_3__0 )*
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2986:1: ( rule__NetworkInfrastructure__Group_12_3__0 )*
+            loop18:
+            do {
+                int alt18=2;
+                int LA18_0 = input.LA(1);
+
+                if ( (LA18_0==31) ) {
+                    alt18=1;
+                }
+
+
+                switch (alt18) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2986:2: rule__NetworkInfrastructure__Group_12_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12_3__0_in_rule__NetworkInfrastructure__Group_12__3__Impl6307);
+            	    rule__NetworkInfrastructure__Group_12_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop18;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getGroup_12_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:2996:1: rule__NetworkInfrastructure__Group_12__4 : rule__NetworkInfrastructure__Group_12__4__Impl ;
+    public final void rule__NetworkInfrastructure__Group_12__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3000:1: ( rule__NetworkInfrastructure__Group_12__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3001:2: rule__NetworkInfrastructure__Group_12__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12__4__Impl_in_rule__NetworkInfrastructure__Group_12__46338);
+            rule__NetworkInfrastructure__Group_12__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__4"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3007:1: rule__NetworkInfrastructure__Group_12__4__Impl : ( '}' ) ;
+    public final void rule__NetworkInfrastructure__Group_12__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3011:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3012:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3012:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3013:1: '}'
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkInfrastructure__Group_12__4__Impl6366); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getRightCurlyBracketKeyword_12_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3036:1: rule__NetworkInfrastructure__Group_12_3__0 : rule__NetworkInfrastructure__Group_12_3__0__Impl rule__NetworkInfrastructure__Group_12_3__1 ;
+    public final void rule__NetworkInfrastructure__Group_12_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3040:1: ( rule__NetworkInfrastructure__Group_12_3__0__Impl rule__NetworkInfrastructure__Group_12_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3041:2: rule__NetworkInfrastructure__Group_12_3__0__Impl rule__NetworkInfrastructure__Group_12_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12_3__0__Impl_in_rule__NetworkInfrastructure__Group_12_3__06407);
+            rule__NetworkInfrastructure__Group_12_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12_3__1_in_rule__NetworkInfrastructure__Group_12_3__06410);
+            rule__NetworkInfrastructure__Group_12_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12_3__0"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3048:1: rule__NetworkInfrastructure__Group_12_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkInfrastructure__Group_12_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3052:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3053:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3053:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3054:1: ','
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__NetworkInfrastructure__Group_12_3__0__Impl6438); 
+             after(grammarAccess.getNetworkInfrastructureAccess().getCommaKeyword_12_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3067:1: rule__NetworkInfrastructure__Group_12_3__1 : rule__NetworkInfrastructure__Group_12_3__1__Impl ;
+    public final void rule__NetworkInfrastructure__Group_12_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3071:1: ( rule__NetworkInfrastructure__Group_12_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3072:2: rule__NetworkInfrastructure__Group_12_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__Group_12_3__1__Impl_in_rule__NetworkInfrastructure__Group_12_3__16469);
+            rule__NetworkInfrastructure__Group_12_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12_3__1"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__Group_12_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3078:1: rule__NetworkInfrastructure__Group_12_3__1__Impl : ( ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 ) ) ;
+    public final void rule__NetworkInfrastructure__Group_12_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3082:1: ( ( ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3083:1: ( ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3083:1: ( ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3084:1: ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 )
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3085:1: ( rule__NetworkInfrastructure__ParamsAssignment_12_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3085:2: rule__NetworkInfrastructure__ParamsAssignment_12_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkInfrastructure__ParamsAssignment_12_3_1_in_rule__NetworkInfrastructure__Group_12_3__1__Impl6496);
+            rule__NetworkInfrastructure__ParamsAssignment_12_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getParamsAssignment_12_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__Group_12_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3099:1: rule__VirtualNetworkInterfacePerfSpec__Group__0 : rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl rule__VirtualNetworkInterfacePerfSpec__Group__1 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3103:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl rule__VirtualNetworkInterfacePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3104:2: rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl rule__VirtualNetworkInterfacePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__06530);
+            rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__1_in_rule__VirtualNetworkInterfacePerfSpec__Group__06533);
+            rule__VirtualNetworkInterfacePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3111:1: rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl : ( () ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3115:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3116:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3116:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3117:1: ()
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3118:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3120:1: 
+            {
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3130:1: rule__VirtualNetworkInterfacePerfSpec__Group__1 : rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl rule__VirtualNetworkInterfacePerfSpec__Group__2 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3134:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl rule__VirtualNetworkInterfacePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3135:2: rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl rule__VirtualNetworkInterfacePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__16591);
+            rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__2_in_rule__VirtualNetworkInterfacePerfSpec__Group__16594);
+            rule__VirtualNetworkInterfacePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3142:1: rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl : ( 'VirtualNetworkInterfacePerfSpec' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3146:1: ( ( 'VirtualNetworkInterfacePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3147:1: ( 'VirtualNetworkInterfacePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3147:1: ( 'VirtualNetworkInterfacePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3148:1: 'VirtualNetworkInterfacePerfSpec'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); 
+            match(input,32,FollowSets000.FOLLOW_32_in_rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl6622); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getVirtualNetworkInterfacePerfSpecKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3161:1: rule__VirtualNetworkInterfacePerfSpec__Group__2 : rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl rule__VirtualNetworkInterfacePerfSpec__Group__3 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3165:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl rule__VirtualNetworkInterfacePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3166:2: rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl rule__VirtualNetworkInterfacePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__26653);
+            rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__3_in_rule__VirtualNetworkInterfacePerfSpec__Group__26656);
+            rule__VirtualNetworkInterfacePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3173:1: rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl : ( '{' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3177:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3178:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3178:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3179:1: '{'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl6684); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3192:1: rule__VirtualNetworkInterfacePerfSpec__Group__3 : rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl rule__VirtualNetworkInterfacePerfSpec__Group__4 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3196:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl rule__VirtualNetworkInterfacePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3197:2: rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl rule__VirtualNetworkInterfacePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__36715);
+            rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__4_in_rule__VirtualNetworkInterfacePerfSpec__Group__36718);
+            rule__VirtualNetworkInterfacePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3204:1: rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl : ( 'isUp' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3208:1: ( ( 'isUp' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3209:1: ( 'isUp' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3209:1: ( 'isUp' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3210:1: 'isUp'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); 
+            match(input,33,FollowSets000.FOLLOW_33_in_rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl6746); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3223:1: rule__VirtualNetworkInterfacePerfSpec__Group__4 : rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl rule__VirtualNetworkInterfacePerfSpec__Group__5 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3227:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl rule__VirtualNetworkInterfacePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3228:2: rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl rule__VirtualNetworkInterfacePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__46777);
+            rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__5_in_rule__VirtualNetworkInterfacePerfSpec__Group__46780);
+            rule__VirtualNetworkInterfacePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3235:1: rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl : ( ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 ) ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3239:1: ( ( ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3240:1: ( ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3240:1: ( ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3241:1: ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3242:1: ( rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3242:2: rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4_in_rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl6807);
+            rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3252:1: rule__VirtualNetworkInterfacePerfSpec__Group__5 : rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl rule__VirtualNetworkInterfacePerfSpec__Group__6 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3256:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl rule__VirtualNetworkInterfacePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3257:2: rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl rule__VirtualNetworkInterfacePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__56837);
+            rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__6_in_rule__VirtualNetworkInterfacePerfSpec__Group__56840);
+            rule__VirtualNetworkInterfacePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3264:1: rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl : ( 'packetProcessingTime' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3268:1: ( ( 'packetProcessingTime' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3269:1: ( 'packetProcessingTime' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3269:1: ( 'packetProcessingTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3270:1: 'packetProcessingTime'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); 
+            match(input,34,FollowSets000.FOLLOW_34_in_rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl6868); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3283:1: rule__VirtualNetworkInterfacePerfSpec__Group__6 : rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl rule__VirtualNetworkInterfacePerfSpec__Group__7 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3287:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl rule__VirtualNetworkInterfacePerfSpec__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3288:2: rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl rule__VirtualNetworkInterfacePerfSpec__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__66899);
+            rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__7_in_rule__VirtualNetworkInterfacePerfSpec__Group__66902);
+            rule__VirtualNetworkInterfacePerfSpec__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3295:1: rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl : ( ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3299:1: ( ( ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3300:1: ( ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3300:1: ( ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3301:1: ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3302:1: ( rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3302:2: rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6_in_rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl6929);
+            rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3312:1: rule__VirtualNetworkInterfacePerfSpec__Group__7 : rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl rule__VirtualNetworkInterfacePerfSpec__Group__8 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3316:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl rule__VirtualNetworkInterfacePerfSpec__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3317:2: rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl rule__VirtualNetworkInterfacePerfSpec__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__76959);
+            rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__8_in_rule__VirtualNetworkInterfacePerfSpec__Group__76962);
+            rule__VirtualNetworkInterfacePerfSpec__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__7"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3324:1: rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl : ( 'MTU' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3328:1: ( ( 'MTU' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3329:1: ( 'MTU' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3329:1: ( 'MTU' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3330:1: 'MTU'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); 
+            match(input,35,FollowSets000.FOLLOW_35_in_rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl6990); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3343:1: rule__VirtualNetworkInterfacePerfSpec__Group__8 : rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl rule__VirtualNetworkInterfacePerfSpec__Group__9 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3347:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl rule__VirtualNetworkInterfacePerfSpec__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3348:2: rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl rule__VirtualNetworkInterfacePerfSpec__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__87021);
+            rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__9_in_rule__VirtualNetworkInterfacePerfSpec__Group__87024);
+            rule__VirtualNetworkInterfacePerfSpec__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__8"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3355:1: rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl : ( ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 ) ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3359:1: ( ( ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3360:1: ( ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3360:1: ( ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3361:1: ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3362:1: ( rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3362:2: rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8_in_rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl7051);
+            rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3372:1: rule__VirtualNetworkInterfacePerfSpec__Group__9 : rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl rule__VirtualNetworkInterfacePerfSpec__Group__10 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3376:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl rule__VirtualNetworkInterfacePerfSpec__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3377:2: rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl rule__VirtualNetworkInterfacePerfSpec__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__97081);
+            rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__10_in_rule__VirtualNetworkInterfacePerfSpec__Group__97084);
+            rule__VirtualNetworkInterfacePerfSpec__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__9"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3384:1: rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl : ( 'interfaceSpeed' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3388:1: ( ( 'interfaceSpeed' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3389:1: ( 'interfaceSpeed' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3389:1: ( 'interfaceSpeed' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3390:1: 'interfaceSpeed'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl7112); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3403:1: rule__VirtualNetworkInterfacePerfSpec__Group__10 : rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl rule__VirtualNetworkInterfacePerfSpec__Group__11 ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3407:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl rule__VirtualNetworkInterfacePerfSpec__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3408:2: rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl rule__VirtualNetworkInterfacePerfSpec__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__107143);
+            rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__11_in_rule__VirtualNetworkInterfacePerfSpec__Group__107146);
+            rule__VirtualNetworkInterfacePerfSpec__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__10"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3415:1: rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl : ( ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3419:1: ( ( ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3420:1: ( ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3420:1: ( ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3421:1: ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3422:1: ( rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3422:2: rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10_in_rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl7173);
+            rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3432:1: rule__VirtualNetworkInterfacePerfSpec__Group__11 : rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3436:1: ( rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3437:2: rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__117203);
+            rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__11"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3443:1: rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl : ( '}' ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3447:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3448:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3448:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3449:1: '}'
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl7231); 
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3486:1: rule__PhysicalNetworkInterfacePerfSpec__Group__0 : rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__1 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3490:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3491:2: rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__07286);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__1_in_rule__PhysicalNetworkInterfacePerfSpec__Group__07289);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3498:1: rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl : ( () ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3502:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3503:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3503:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3504:1: ()
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3505:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3507:1: 
+            {
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3517:1: rule__PhysicalNetworkInterfacePerfSpec__Group__1 : rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__2 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3521:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3522:2: rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__17347);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__2_in_rule__PhysicalNetworkInterfacePerfSpec__Group__17350);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3529:1: rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl : ( 'PhysicalNetworkInterfacePerfSpec' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3533:1: ( ( 'PhysicalNetworkInterfacePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3534:1: ( 'PhysicalNetworkInterfacePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3534:1: ( 'PhysicalNetworkInterfacePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3535:1: 'PhysicalNetworkInterfacePerfSpec'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); 
+            match(input,37,FollowSets000.FOLLOW_37_in_rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl7378); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPhysicalNetworkInterfacePerfSpecKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3548:1: rule__PhysicalNetworkInterfacePerfSpec__Group__2 : rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__3 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3552:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3553:2: rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__27409);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__3_in_rule__PhysicalNetworkInterfacePerfSpec__Group__27412);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3560:1: rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl : ( '{' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3564:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3565:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3565:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3566:1: '{'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl7440); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3579:1: rule__PhysicalNetworkInterfacePerfSpec__Group__3 : rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__4 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3583:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3584:2: rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__37471);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__4_in_rule__PhysicalNetworkInterfacePerfSpec__Group__37474);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3591:1: rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl : ( 'isUp' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3595:1: ( ( 'isUp' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3596:1: ( 'isUp' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3596:1: ( 'isUp' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3597:1: 'isUp'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); 
+            match(input,33,FollowSets000.FOLLOW_33_in_rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl7502); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3610:1: rule__PhysicalNetworkInterfacePerfSpec__Group__4 : rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__5 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3614:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3615:2: rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__47533);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__5_in_rule__PhysicalNetworkInterfacePerfSpec__Group__47536);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3622:1: rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl : ( ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 ) ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3626:1: ( ( ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3627:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3627:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3628:1: ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3629:1: ( rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3629:2: rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4_in_rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl7563);
+            rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3639:1: rule__PhysicalNetworkInterfacePerfSpec__Group__5 : rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__6 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3643:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3644:2: rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__57593);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__6_in_rule__PhysicalNetworkInterfacePerfSpec__Group__57596);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3651:1: rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl : ( 'packetProcessingTime' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3655:1: ( ( 'packetProcessingTime' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3656:1: ( 'packetProcessingTime' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3656:1: ( 'packetProcessingTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3657:1: 'packetProcessingTime'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); 
+            match(input,34,FollowSets000.FOLLOW_34_in_rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl7624); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3670:1: rule__PhysicalNetworkInterfacePerfSpec__Group__6 : rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__7 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3674:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3675:2: rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__67655);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__7_in_rule__PhysicalNetworkInterfacePerfSpec__Group__67658);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3682:1: rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl : ( ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3686:1: ( ( ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3687:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3687:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3688:1: ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3689:1: ( rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3689:2: rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6_in_rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl7685);
+            rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3699:1: rule__PhysicalNetworkInterfacePerfSpec__Group__7 : rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__8 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3703:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3704:2: rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__77715);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__8_in_rule__PhysicalNetworkInterfacePerfSpec__Group__77718);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__7"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3711:1: rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl : ( 'MTU' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3715:1: ( ( 'MTU' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3716:1: ( 'MTU' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3716:1: ( 'MTU' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3717:1: 'MTU'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); 
+            match(input,35,FollowSets000.FOLLOW_35_in_rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl7746); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3730:1: rule__PhysicalNetworkInterfacePerfSpec__Group__8 : rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__9 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3734:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3735:2: rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__87777);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__9_in_rule__PhysicalNetworkInterfacePerfSpec__Group__87780);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__8"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3742:1: rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl : ( ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 ) ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3746:1: ( ( ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3747:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3747:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3748:1: ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3749:1: ( rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3749:2: rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8_in_rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl7807);
+            rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3759:1: rule__PhysicalNetworkInterfacePerfSpec__Group__9 : rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__10 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3763:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3764:2: rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__97837);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__10_in_rule__PhysicalNetworkInterfacePerfSpec__Group__97840);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__9"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3771:1: rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl : ( 'interfaceSpeed' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3775:1: ( ( 'interfaceSpeed' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3776:1: ( 'interfaceSpeed' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3776:1: ( 'interfaceSpeed' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3777:1: 'interfaceSpeed'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); 
+            match(input,36,FollowSets000.FOLLOW_36_in_rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl7868); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3790:1: rule__PhysicalNetworkInterfacePerfSpec__Group__10 : rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__11 ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3794:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3795:2: rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl rule__PhysicalNetworkInterfacePerfSpec__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__107899);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__11_in_rule__PhysicalNetworkInterfacePerfSpec__Group__107902);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__10"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3802:1: rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl : ( ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3806:1: ( ( ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3807:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3807:1: ( ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3808:1: ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3809:1: ( rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3809:2: rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10_in_rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl7929);
+            rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3819:1: rule__PhysicalNetworkInterfacePerfSpec__Group__11 : rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3823:1: ( rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3824:2: rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__117959);
+            rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__11"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3830:1: rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl : ( '}' ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3834:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3835:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3835:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3836:1: '}'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl7987); 
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3873:1: rule__VirtualLinkPerfSpec__Group__0 : rule__VirtualLinkPerfSpec__Group__0__Impl rule__VirtualLinkPerfSpec__Group__1 ;
+    public final void rule__VirtualLinkPerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3877:1: ( rule__VirtualLinkPerfSpec__Group__0__Impl rule__VirtualLinkPerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3878:2: rule__VirtualLinkPerfSpec__Group__0__Impl rule__VirtualLinkPerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__0__Impl_in_rule__VirtualLinkPerfSpec__Group__08042);
+            rule__VirtualLinkPerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__1_in_rule__VirtualLinkPerfSpec__Group__08045);
+            rule__VirtualLinkPerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3885:1: rule__VirtualLinkPerfSpec__Group__0__Impl : ( () ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3889:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3890:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3890:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3891:1: ()
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3892:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3894:1: 
+            {
+            }
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3904:1: rule__VirtualLinkPerfSpec__Group__1 : rule__VirtualLinkPerfSpec__Group__1__Impl rule__VirtualLinkPerfSpec__Group__2 ;
+    public final void rule__VirtualLinkPerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3908:1: ( rule__VirtualLinkPerfSpec__Group__1__Impl rule__VirtualLinkPerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3909:2: rule__VirtualLinkPerfSpec__Group__1__Impl rule__VirtualLinkPerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__1__Impl_in_rule__VirtualLinkPerfSpec__Group__18103);
+            rule__VirtualLinkPerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__2_in_rule__VirtualLinkPerfSpec__Group__18106);
+            rule__VirtualLinkPerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3916:1: rule__VirtualLinkPerfSpec__Group__1__Impl : ( 'VirtualLinkPerfSpec' ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3920:1: ( ( 'VirtualLinkPerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3921:1: ( 'VirtualLinkPerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3921:1: ( 'VirtualLinkPerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3922:1: 'VirtualLinkPerfSpec'
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); 
+            match(input,38,FollowSets000.FOLLOW_38_in_rule__VirtualLinkPerfSpec__Group__1__Impl8134); 
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getVirtualLinkPerfSpecKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3935:1: rule__VirtualLinkPerfSpec__Group__2 : rule__VirtualLinkPerfSpec__Group__2__Impl rule__VirtualLinkPerfSpec__Group__3 ;
+    public final void rule__VirtualLinkPerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3939:1: ( rule__VirtualLinkPerfSpec__Group__2__Impl rule__VirtualLinkPerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3940:2: rule__VirtualLinkPerfSpec__Group__2__Impl rule__VirtualLinkPerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__2__Impl_in_rule__VirtualLinkPerfSpec__Group__28165);
+            rule__VirtualLinkPerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__3_in_rule__VirtualLinkPerfSpec__Group__28168);
+            rule__VirtualLinkPerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3947:1: rule__VirtualLinkPerfSpec__Group__2__Impl : ( '{' ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3951:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3952:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3952:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3953:1: '{'
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__VirtualLinkPerfSpec__Group__2__Impl8196); 
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3966:1: rule__VirtualLinkPerfSpec__Group__3 : rule__VirtualLinkPerfSpec__Group__3__Impl rule__VirtualLinkPerfSpec__Group__4 ;
+    public final void rule__VirtualLinkPerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3970:1: ( rule__VirtualLinkPerfSpec__Group__3__Impl rule__VirtualLinkPerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3971:2: rule__VirtualLinkPerfSpec__Group__3__Impl rule__VirtualLinkPerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__3__Impl_in_rule__VirtualLinkPerfSpec__Group__38227);
+            rule__VirtualLinkPerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__4_in_rule__VirtualLinkPerfSpec__Group__38230);
+            rule__VirtualLinkPerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3978:1: rule__VirtualLinkPerfSpec__Group__3__Impl : ( 'propagationDelay' ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3982:1: ( ( 'propagationDelay' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3983:1: ( 'propagationDelay' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3983:1: ( 'propagationDelay' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3984:1: 'propagationDelay'
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__VirtualLinkPerfSpec__Group__3__Impl8258); 
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:3997:1: rule__VirtualLinkPerfSpec__Group__4 : rule__VirtualLinkPerfSpec__Group__4__Impl rule__VirtualLinkPerfSpec__Group__5 ;
+    public final void rule__VirtualLinkPerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4001:1: ( rule__VirtualLinkPerfSpec__Group__4__Impl rule__VirtualLinkPerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4002:2: rule__VirtualLinkPerfSpec__Group__4__Impl rule__VirtualLinkPerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__4__Impl_in_rule__VirtualLinkPerfSpec__Group__48289);
+            rule__VirtualLinkPerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__5_in_rule__VirtualLinkPerfSpec__Group__48292);
+            rule__VirtualLinkPerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4009:1: rule__VirtualLinkPerfSpec__Group__4__Impl : ( ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 ) ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4013:1: ( ( ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4014:1: ( ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4014:1: ( ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4015:1: ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 )
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4016:1: ( rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4016:2: rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4_in_rule__VirtualLinkPerfSpec__Group__4__Impl8319);
+            rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4026:1: rule__VirtualLinkPerfSpec__Group__5 : rule__VirtualLinkPerfSpec__Group__5__Impl rule__VirtualLinkPerfSpec__Group__6 ;
+    public final void rule__VirtualLinkPerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4030:1: ( rule__VirtualLinkPerfSpec__Group__5__Impl rule__VirtualLinkPerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4031:2: rule__VirtualLinkPerfSpec__Group__5__Impl rule__VirtualLinkPerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__5__Impl_in_rule__VirtualLinkPerfSpec__Group__58349);
+            rule__VirtualLinkPerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__6_in_rule__VirtualLinkPerfSpec__Group__58352);
+            rule__VirtualLinkPerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4038:1: rule__VirtualLinkPerfSpec__Group__5__Impl : ( ( rule__VirtualLinkPerfSpec__Group_5__0 )? ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4042:1: ( ( ( rule__VirtualLinkPerfSpec__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4043:1: ( ( rule__VirtualLinkPerfSpec__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4043:1: ( ( rule__VirtualLinkPerfSpec__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4044:1: ( rule__VirtualLinkPerfSpec__Group_5__0 )?
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4045:1: ( rule__VirtualLinkPerfSpec__Group_5__0 )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==40) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4045:2: rule__VirtualLinkPerfSpec__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group_5__0_in_rule__VirtualLinkPerfSpec__Group__5__Impl8379);
+                    rule__VirtualLinkPerfSpec__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4055:1: rule__VirtualLinkPerfSpec__Group__6 : rule__VirtualLinkPerfSpec__Group__6__Impl ;
+    public final void rule__VirtualLinkPerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4059:1: ( rule__VirtualLinkPerfSpec__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4060:2: rule__VirtualLinkPerfSpec__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group__6__Impl_in_rule__VirtualLinkPerfSpec__Group__68410);
+            rule__VirtualLinkPerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4066:1: rule__VirtualLinkPerfSpec__Group__6__Impl : ( '}' ) ;
+    public final void rule__VirtualLinkPerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4070:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4071:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4071:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4072:1: '}'
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__VirtualLinkPerfSpec__Group__6__Impl8438); 
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4099:1: rule__VirtualLinkPerfSpec__Group_5__0 : rule__VirtualLinkPerfSpec__Group_5__0__Impl rule__VirtualLinkPerfSpec__Group_5__1 ;
+    public final void rule__VirtualLinkPerfSpec__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4103:1: ( rule__VirtualLinkPerfSpec__Group_5__0__Impl rule__VirtualLinkPerfSpec__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4104:2: rule__VirtualLinkPerfSpec__Group_5__0__Impl rule__VirtualLinkPerfSpec__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group_5__0__Impl_in_rule__VirtualLinkPerfSpec__Group_5__08483);
+            rule__VirtualLinkPerfSpec__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group_5__1_in_rule__VirtualLinkPerfSpec__Group_5__08486);
+            rule__VirtualLinkPerfSpec__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group_5__0"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4111:1: rule__VirtualLinkPerfSpec__Group_5__0__Impl : ( 'maxSupportedBandwidth' ) ;
+    public final void rule__VirtualLinkPerfSpec__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4115:1: ( ( 'maxSupportedBandwidth' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4116:1: ( 'maxSupportedBandwidth' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4116:1: ( 'maxSupportedBandwidth' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4117:1: 'maxSupportedBandwidth'
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__VirtualLinkPerfSpec__Group_5__0__Impl8514); 
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4130:1: rule__VirtualLinkPerfSpec__Group_5__1 : rule__VirtualLinkPerfSpec__Group_5__1__Impl ;
+    public final void rule__VirtualLinkPerfSpec__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4134:1: ( rule__VirtualLinkPerfSpec__Group_5__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4135:2: rule__VirtualLinkPerfSpec__Group_5__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__Group_5__1__Impl_in_rule__VirtualLinkPerfSpec__Group_5__18545);
+            rule__VirtualLinkPerfSpec__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group_5__1"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4141:1: rule__VirtualLinkPerfSpec__Group_5__1__Impl : ( ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) ) ;
+    public final void rule__VirtualLinkPerfSpec__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4145:1: ( ( ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4146:1: ( ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4146:1: ( ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4147:1: ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 )
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4148:1: ( rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4148:2: rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1_in_rule__VirtualLinkPerfSpec__Group_5__1__Impl8572);
+            rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4162:1: rule__PhysicalLinkPerfSpec__Group__0 : rule__PhysicalLinkPerfSpec__Group__0__Impl rule__PhysicalLinkPerfSpec__Group__1 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4166:1: ( rule__PhysicalLinkPerfSpec__Group__0__Impl rule__PhysicalLinkPerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4167:2: rule__PhysicalLinkPerfSpec__Group__0__Impl rule__PhysicalLinkPerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__0__Impl_in_rule__PhysicalLinkPerfSpec__Group__08606);
+            rule__PhysicalLinkPerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__1_in_rule__PhysicalLinkPerfSpec__Group__08609);
+            rule__PhysicalLinkPerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4174:1: rule__PhysicalLinkPerfSpec__Group__0__Impl : ( () ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4178:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4179:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4179:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4180:1: ()
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4181:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4183:1: 
+            {
+            }
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4193:1: rule__PhysicalLinkPerfSpec__Group__1 : rule__PhysicalLinkPerfSpec__Group__1__Impl rule__PhysicalLinkPerfSpec__Group__2 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4197:1: ( rule__PhysicalLinkPerfSpec__Group__1__Impl rule__PhysicalLinkPerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4198:2: rule__PhysicalLinkPerfSpec__Group__1__Impl rule__PhysicalLinkPerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__1__Impl_in_rule__PhysicalLinkPerfSpec__Group__18667);
+            rule__PhysicalLinkPerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__2_in_rule__PhysicalLinkPerfSpec__Group__18670);
+            rule__PhysicalLinkPerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4205:1: rule__PhysicalLinkPerfSpec__Group__1__Impl : ( 'PhysicalLinkPerfSpec' ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4209:1: ( ( 'PhysicalLinkPerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4210:1: ( 'PhysicalLinkPerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4210:1: ( 'PhysicalLinkPerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4211:1: 'PhysicalLinkPerfSpec'
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); 
+            match(input,41,FollowSets000.FOLLOW_41_in_rule__PhysicalLinkPerfSpec__Group__1__Impl8698); 
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPhysicalLinkPerfSpecKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4224:1: rule__PhysicalLinkPerfSpec__Group__2 : rule__PhysicalLinkPerfSpec__Group__2__Impl rule__PhysicalLinkPerfSpec__Group__3 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4228:1: ( rule__PhysicalLinkPerfSpec__Group__2__Impl rule__PhysicalLinkPerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4229:2: rule__PhysicalLinkPerfSpec__Group__2__Impl rule__PhysicalLinkPerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__2__Impl_in_rule__PhysicalLinkPerfSpec__Group__28729);
+            rule__PhysicalLinkPerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__3_in_rule__PhysicalLinkPerfSpec__Group__28732);
+            rule__PhysicalLinkPerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4236:1: rule__PhysicalLinkPerfSpec__Group__2__Impl : ( '{' ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4240:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4241:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4241:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4242:1: '{'
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__PhysicalLinkPerfSpec__Group__2__Impl8760); 
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4255:1: rule__PhysicalLinkPerfSpec__Group__3 : rule__PhysicalLinkPerfSpec__Group__3__Impl rule__PhysicalLinkPerfSpec__Group__4 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4259:1: ( rule__PhysicalLinkPerfSpec__Group__3__Impl rule__PhysicalLinkPerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4260:2: rule__PhysicalLinkPerfSpec__Group__3__Impl rule__PhysicalLinkPerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__3__Impl_in_rule__PhysicalLinkPerfSpec__Group__38791);
+            rule__PhysicalLinkPerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__4_in_rule__PhysicalLinkPerfSpec__Group__38794);
+            rule__PhysicalLinkPerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4267:1: rule__PhysicalLinkPerfSpec__Group__3__Impl : ( 'propagationDelay' ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4271:1: ( ( 'propagationDelay' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4272:1: ( 'propagationDelay' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4272:1: ( 'propagationDelay' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4273:1: 'propagationDelay'
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); 
+            match(input,39,FollowSets000.FOLLOW_39_in_rule__PhysicalLinkPerfSpec__Group__3__Impl8822); 
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4286:1: rule__PhysicalLinkPerfSpec__Group__4 : rule__PhysicalLinkPerfSpec__Group__4__Impl rule__PhysicalLinkPerfSpec__Group__5 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4290:1: ( rule__PhysicalLinkPerfSpec__Group__4__Impl rule__PhysicalLinkPerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4291:2: rule__PhysicalLinkPerfSpec__Group__4__Impl rule__PhysicalLinkPerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__4__Impl_in_rule__PhysicalLinkPerfSpec__Group__48853);
+            rule__PhysicalLinkPerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__5_in_rule__PhysicalLinkPerfSpec__Group__48856);
+            rule__PhysicalLinkPerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4298:1: rule__PhysicalLinkPerfSpec__Group__4__Impl : ( ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 ) ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4302:1: ( ( ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4303:1: ( ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4303:1: ( ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4304:1: ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 )
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4305:1: ( rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4305:2: rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4_in_rule__PhysicalLinkPerfSpec__Group__4__Impl8883);
+            rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4315:1: rule__PhysicalLinkPerfSpec__Group__5 : rule__PhysicalLinkPerfSpec__Group__5__Impl rule__PhysicalLinkPerfSpec__Group__6 ;
+    public final void rule__PhysicalLinkPerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4319:1: ( rule__PhysicalLinkPerfSpec__Group__5__Impl rule__PhysicalLinkPerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4320:2: rule__PhysicalLinkPerfSpec__Group__5__Impl rule__PhysicalLinkPerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__5__Impl_in_rule__PhysicalLinkPerfSpec__Group__58913);
+            rule__PhysicalLinkPerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__6_in_rule__PhysicalLinkPerfSpec__Group__58916);
+            rule__PhysicalLinkPerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4327:1: rule__PhysicalLinkPerfSpec__Group__5__Impl : ( ( rule__PhysicalLinkPerfSpec__Group_5__0 )? ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4331:1: ( ( ( rule__PhysicalLinkPerfSpec__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4332:1: ( ( rule__PhysicalLinkPerfSpec__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4332:1: ( ( rule__PhysicalLinkPerfSpec__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4333:1: ( rule__PhysicalLinkPerfSpec__Group_5__0 )?
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4334:1: ( rule__PhysicalLinkPerfSpec__Group_5__0 )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==40) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4334:2: rule__PhysicalLinkPerfSpec__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__0_in_rule__PhysicalLinkPerfSpec__Group__5__Impl8943);
+                    rule__PhysicalLinkPerfSpec__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4344:1: rule__PhysicalLinkPerfSpec__Group__6 : rule__PhysicalLinkPerfSpec__Group__6__Impl ;
+    public final void rule__PhysicalLinkPerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4348:1: ( rule__PhysicalLinkPerfSpec__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4349:2: rule__PhysicalLinkPerfSpec__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group__6__Impl_in_rule__PhysicalLinkPerfSpec__Group__68974);
+            rule__PhysicalLinkPerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4355:1: rule__PhysicalLinkPerfSpec__Group__6__Impl : ( '}' ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4359:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4360:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4360:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4361:1: '}'
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__PhysicalLinkPerfSpec__Group__6__Impl9002); 
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4388:1: rule__PhysicalLinkPerfSpec__Group_5__0 : rule__PhysicalLinkPerfSpec__Group_5__0__Impl rule__PhysicalLinkPerfSpec__Group_5__1 ;
+    public final void rule__PhysicalLinkPerfSpec__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4392:1: ( rule__PhysicalLinkPerfSpec__Group_5__0__Impl rule__PhysicalLinkPerfSpec__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4393:2: rule__PhysicalLinkPerfSpec__Group_5__0__Impl rule__PhysicalLinkPerfSpec__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__0__Impl_in_rule__PhysicalLinkPerfSpec__Group_5__09047);
+            rule__PhysicalLinkPerfSpec__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__1_in_rule__PhysicalLinkPerfSpec__Group_5__09050);
+            rule__PhysicalLinkPerfSpec__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group_5__0"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4400:1: rule__PhysicalLinkPerfSpec__Group_5__0__Impl : ( 'maxSupportedBandwidth' ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4404:1: ( ( 'maxSupportedBandwidth' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4405:1: ( 'maxSupportedBandwidth' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4405:1: ( 'maxSupportedBandwidth' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4406:1: 'maxSupportedBandwidth'
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); 
+            match(input,40,FollowSets000.FOLLOW_40_in_rule__PhysicalLinkPerfSpec__Group_5__0__Impl9078); 
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4419:1: rule__PhysicalLinkPerfSpec__Group_5__1 : rule__PhysicalLinkPerfSpec__Group_5__1__Impl ;
+    public final void rule__PhysicalLinkPerfSpec__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4423:1: ( rule__PhysicalLinkPerfSpec__Group_5__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4424:2: rule__PhysicalLinkPerfSpec__Group_5__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__1__Impl_in_rule__PhysicalLinkPerfSpec__Group_5__19109);
+            rule__PhysicalLinkPerfSpec__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group_5__1"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4430:1: rule__PhysicalLinkPerfSpec__Group_5__1__Impl : ( ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) ) ;
+    public final void rule__PhysicalLinkPerfSpec__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4434:1: ( ( ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4435:1: ( ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4435:1: ( ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4436:1: ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 )
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4437:1: ( rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4437:2: rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1_in_rule__PhysicalLinkPerfSpec__Group_5__1__Impl9136);
+            rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4451:1: rule__IntermediateNodePerfSpec__Group__0 : rule__IntermediateNodePerfSpec__Group__0__Impl rule__IntermediateNodePerfSpec__Group__1 ;
+    public final void rule__IntermediateNodePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4455:1: ( rule__IntermediateNodePerfSpec__Group__0__Impl rule__IntermediateNodePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4456:2: rule__IntermediateNodePerfSpec__Group__0__Impl rule__IntermediateNodePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__0__Impl_in_rule__IntermediateNodePerfSpec__Group__09170);
+            rule__IntermediateNodePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__1_in_rule__IntermediateNodePerfSpec__Group__09173);
+            rule__IntermediateNodePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4463:1: rule__IntermediateNodePerfSpec__Group__0__Impl : ( 'IntermediateNodePerfSpec' ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4467:1: ( ( 'IntermediateNodePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4468:1: ( 'IntermediateNodePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4468:1: ( 'IntermediateNodePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4469:1: 'IntermediateNodePerfSpec'
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); 
+            match(input,42,FollowSets000.FOLLOW_42_in_rule__IntermediateNodePerfSpec__Group__0__Impl9201); 
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getIntermediateNodePerfSpecKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4482:1: rule__IntermediateNodePerfSpec__Group__1 : rule__IntermediateNodePerfSpec__Group__1__Impl rule__IntermediateNodePerfSpec__Group__2 ;
+    public final void rule__IntermediateNodePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4486:1: ( rule__IntermediateNodePerfSpec__Group__1__Impl rule__IntermediateNodePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4487:2: rule__IntermediateNodePerfSpec__Group__1__Impl rule__IntermediateNodePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__1__Impl_in_rule__IntermediateNodePerfSpec__Group__19232);
+            rule__IntermediateNodePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__2_in_rule__IntermediateNodePerfSpec__Group__19235);
+            rule__IntermediateNodePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4494:1: rule__IntermediateNodePerfSpec__Group__1__Impl : ( '{' ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4498:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4499:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4499:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4500:1: '{'
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__IntermediateNodePerfSpec__Group__1__Impl9263); 
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4513:1: rule__IntermediateNodePerfSpec__Group__2 : rule__IntermediateNodePerfSpec__Group__2__Impl rule__IntermediateNodePerfSpec__Group__3 ;
+    public final void rule__IntermediateNodePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4517:1: ( rule__IntermediateNodePerfSpec__Group__2__Impl rule__IntermediateNodePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4518:2: rule__IntermediateNodePerfSpec__Group__2__Impl rule__IntermediateNodePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__2__Impl_in_rule__IntermediateNodePerfSpec__Group__29294);
+            rule__IntermediateNodePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__3_in_rule__IntermediateNodePerfSpec__Group__29297);
+            rule__IntermediateNodePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4525:1: rule__IntermediateNodePerfSpec__Group__2__Impl : ( 'dataplane' ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4529:1: ( ( 'dataplane' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4530:1: ( 'dataplane' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4530:1: ( 'dataplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4531:1: 'dataplane'
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__IntermediateNodePerfSpec__Group__2__Impl9325); 
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4544:1: rule__IntermediateNodePerfSpec__Group__3 : rule__IntermediateNodePerfSpec__Group__3__Impl rule__IntermediateNodePerfSpec__Group__4 ;
+    public final void rule__IntermediateNodePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4548:1: ( rule__IntermediateNodePerfSpec__Group__3__Impl rule__IntermediateNodePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4549:2: rule__IntermediateNodePerfSpec__Group__3__Impl rule__IntermediateNodePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__3__Impl_in_rule__IntermediateNodePerfSpec__Group__39356);
+            rule__IntermediateNodePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__4_in_rule__IntermediateNodePerfSpec__Group__39359);
+            rule__IntermediateNodePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4556:1: rule__IntermediateNodePerfSpec__Group__3__Impl : ( ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 ) ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4560:1: ( ( ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4561:1: ( ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4561:1: ( ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4562:1: ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 )
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4563:1: ( rule__IntermediateNodePerfSpec__DataplaneAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4563:2: rule__IntermediateNodePerfSpec__DataplaneAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__DataplaneAssignment_3_in_rule__IntermediateNodePerfSpec__Group__3__Impl9386);
+            rule__IntermediateNodePerfSpec__DataplaneAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4573:1: rule__IntermediateNodePerfSpec__Group__4 : rule__IntermediateNodePerfSpec__Group__4__Impl rule__IntermediateNodePerfSpec__Group__5 ;
+    public final void rule__IntermediateNodePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4577:1: ( rule__IntermediateNodePerfSpec__Group__4__Impl rule__IntermediateNodePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4578:2: rule__IntermediateNodePerfSpec__Group__4__Impl rule__IntermediateNodePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__4__Impl_in_rule__IntermediateNodePerfSpec__Group__49416);
+            rule__IntermediateNodePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__5_in_rule__IntermediateNodePerfSpec__Group__49419);
+            rule__IntermediateNodePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4585:1: rule__IntermediateNodePerfSpec__Group__4__Impl : ( 'controlplane' ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4589:1: ( ( 'controlplane' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4590:1: ( 'controlplane' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4590:1: ( 'controlplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4591:1: 'controlplane'
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__IntermediateNodePerfSpec__Group__4__Impl9447); 
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4604:1: rule__IntermediateNodePerfSpec__Group__5 : rule__IntermediateNodePerfSpec__Group__5__Impl rule__IntermediateNodePerfSpec__Group__6 ;
+    public final void rule__IntermediateNodePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4608:1: ( rule__IntermediateNodePerfSpec__Group__5__Impl rule__IntermediateNodePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4609:2: rule__IntermediateNodePerfSpec__Group__5__Impl rule__IntermediateNodePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__5__Impl_in_rule__IntermediateNodePerfSpec__Group__59478);
+            rule__IntermediateNodePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__6_in_rule__IntermediateNodePerfSpec__Group__59481);
+            rule__IntermediateNodePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4616:1: rule__IntermediateNodePerfSpec__Group__5__Impl : ( ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 ) ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4620:1: ( ( ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4621:1: ( ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4621:1: ( ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4622:1: ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 )
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4623:1: ( rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4623:2: rule__IntermediateNodePerfSpec__ControlplaneAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__ControlplaneAssignment_5_in_rule__IntermediateNodePerfSpec__Group__5__Impl9508);
+            rule__IntermediateNodePerfSpec__ControlplaneAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4633:1: rule__IntermediateNodePerfSpec__Group__6 : rule__IntermediateNodePerfSpec__Group__6__Impl ;
+    public final void rule__IntermediateNodePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4637:1: ( rule__IntermediateNodePerfSpec__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4638:2: rule__IntermediateNodePerfSpec__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__IntermediateNodePerfSpec__Group__6__Impl_in_rule__IntermediateNodePerfSpec__Group__69538);
+            rule__IntermediateNodePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4644:1: rule__IntermediateNodePerfSpec__Group__6__Impl : ( '}' ) ;
+    public final void rule__IntermediateNodePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4648:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4649:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4649:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4650:1: '}'
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__IntermediateNodePerfSpec__Group__6__Impl9566); 
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4677:1: rule__ControlPlanePerfSpec__Group__0 : rule__ControlPlanePerfSpec__Group__0__Impl rule__ControlPlanePerfSpec__Group__1 ;
+    public final void rule__ControlPlanePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4681:1: ( rule__ControlPlanePerfSpec__Group__0__Impl rule__ControlPlanePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4682:2: rule__ControlPlanePerfSpec__Group__0__Impl rule__ControlPlanePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__0__Impl_in_rule__ControlPlanePerfSpec__Group__09611);
+            rule__ControlPlanePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__1_in_rule__ControlPlanePerfSpec__Group__09614);
+            rule__ControlPlanePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4689:1: rule__ControlPlanePerfSpec__Group__0__Impl : ( 'DataPlanePerfSpec' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4693:1: ( ( 'DataPlanePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4694:1: ( 'DataPlanePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4694:1: ( 'DataPlanePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4695:1: 'DataPlanePerfSpec'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); 
+            match(input,45,FollowSets000.FOLLOW_45_in_rule__ControlPlanePerfSpec__Group__0__Impl9642); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4708:1: rule__ControlPlanePerfSpec__Group__1 : rule__ControlPlanePerfSpec__Group__1__Impl rule__ControlPlanePerfSpec__Group__2 ;
+    public final void rule__ControlPlanePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4712:1: ( rule__ControlPlanePerfSpec__Group__1__Impl rule__ControlPlanePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4713:2: rule__ControlPlanePerfSpec__Group__1__Impl rule__ControlPlanePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__1__Impl_in_rule__ControlPlanePerfSpec__Group__19673);
+            rule__ControlPlanePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__2_in_rule__ControlPlanePerfSpec__Group__19676);
+            rule__ControlPlanePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4720:1: rule__ControlPlanePerfSpec__Group__1__Impl : ( '{' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4724:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4725:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4725:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4726:1: '{'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__ControlPlanePerfSpec__Group__1__Impl9704); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4739:1: rule__ControlPlanePerfSpec__Group__2 : rule__ControlPlanePerfSpec__Group__2__Impl rule__ControlPlanePerfSpec__Group__3 ;
+    public final void rule__ControlPlanePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4743:1: ( rule__ControlPlanePerfSpec__Group__2__Impl rule__ControlPlanePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4744:2: rule__ControlPlanePerfSpec__Group__2__Impl rule__ControlPlanePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__2__Impl_in_rule__ControlPlanePerfSpec__Group__29735);
+            rule__ControlPlanePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__3_in_rule__ControlPlanePerfSpec__Group__29738);
+            rule__ControlPlanePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4751:1: rule__ControlPlanePerfSpec__Group__2__Impl : ( 'processingLatency' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4755:1: ( ( 'processingLatency' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4756:1: ( 'processingLatency' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4756:1: ( 'processingLatency' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4757:1: 'processingLatency'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); 
+            match(input,46,FollowSets000.FOLLOW_46_in_rule__ControlPlanePerfSpec__Group__2__Impl9766); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4770:1: rule__ControlPlanePerfSpec__Group__3 : rule__ControlPlanePerfSpec__Group__3__Impl rule__ControlPlanePerfSpec__Group__4 ;
+    public final void rule__ControlPlanePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4774:1: ( rule__ControlPlanePerfSpec__Group__3__Impl rule__ControlPlanePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4775:2: rule__ControlPlanePerfSpec__Group__3__Impl rule__ControlPlanePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__3__Impl_in_rule__ControlPlanePerfSpec__Group__39797);
+            rule__ControlPlanePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__4_in_rule__ControlPlanePerfSpec__Group__39800);
+            rule__ControlPlanePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4782:1: rule__ControlPlanePerfSpec__Group__3__Impl : ( ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 ) ) ;
+    public final void rule__ControlPlanePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4786:1: ( ( ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4787:1: ( ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4787:1: ( ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4788:1: ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 )
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4789:1: ( rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4789:2: rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3_in_rule__ControlPlanePerfSpec__Group__3__Impl9827);
+            rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4799:1: rule__ControlPlanePerfSpec__Group__4 : rule__ControlPlanePerfSpec__Group__4__Impl rule__ControlPlanePerfSpec__Group__5 ;
+    public final void rule__ControlPlanePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4803:1: ( rule__ControlPlanePerfSpec__Group__4__Impl rule__ControlPlanePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4804:2: rule__ControlPlanePerfSpec__Group__4__Impl rule__ControlPlanePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__4__Impl_in_rule__ControlPlanePerfSpec__Group__49857);
+            rule__ControlPlanePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__5_in_rule__ControlPlanePerfSpec__Group__49860);
+            rule__ControlPlanePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4811:1: rule__ControlPlanePerfSpec__Group__4__Impl : ( 'processingBandwidthReqPS' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4815:1: ( ( 'processingBandwidthReqPS' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4816:1: ( 'processingBandwidthReqPS' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4816:1: ( 'processingBandwidthReqPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4817:1: 'processingBandwidthReqPS'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); 
+            match(input,47,FollowSets000.FOLLOW_47_in_rule__ControlPlanePerfSpec__Group__4__Impl9888); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4830:1: rule__ControlPlanePerfSpec__Group__5 : rule__ControlPlanePerfSpec__Group__5__Impl rule__ControlPlanePerfSpec__Group__6 ;
+    public final void rule__ControlPlanePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4834:1: ( rule__ControlPlanePerfSpec__Group__5__Impl rule__ControlPlanePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4835:2: rule__ControlPlanePerfSpec__Group__5__Impl rule__ControlPlanePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__5__Impl_in_rule__ControlPlanePerfSpec__Group__59919);
+            rule__ControlPlanePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__6_in_rule__ControlPlanePerfSpec__Group__59922);
+            rule__ControlPlanePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4842:1: rule__ControlPlanePerfSpec__Group__5__Impl : ( ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 ) ) ;
+    public final void rule__ControlPlanePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4846:1: ( ( ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4847:1: ( ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4847:1: ( ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4848:1: ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 )
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4849:1: ( rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4849:2: rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5_in_rule__ControlPlanePerfSpec__Group__5__Impl9949);
+            rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4859:1: rule__ControlPlanePerfSpec__Group__6 : rule__ControlPlanePerfSpec__Group__6__Impl rule__ControlPlanePerfSpec__Group__7 ;
+    public final void rule__ControlPlanePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4863:1: ( rule__ControlPlanePerfSpec__Group__6__Impl rule__ControlPlanePerfSpec__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4864:2: rule__ControlPlanePerfSpec__Group__6__Impl rule__ControlPlanePerfSpec__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__6__Impl_in_rule__ControlPlanePerfSpec__Group__69979);
+            rule__ControlPlanePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__7_in_rule__ControlPlanePerfSpec__Group__69982);
+            rule__ControlPlanePerfSpec__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4871:1: rule__ControlPlanePerfSpec__Group__6__Impl : ( 'packetProcessingTime' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4875:1: ( ( 'packetProcessingTime' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4876:1: ( 'packetProcessingTime' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4876:1: ( 'packetProcessingTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4877:1: 'packetProcessingTime'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); 
+            match(input,34,FollowSets000.FOLLOW_34_in_rule__ControlPlanePerfSpec__Group__6__Impl10010); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4890:1: rule__ControlPlanePerfSpec__Group__7 : rule__ControlPlanePerfSpec__Group__7__Impl rule__ControlPlanePerfSpec__Group__8 ;
+    public final void rule__ControlPlanePerfSpec__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4894:1: ( rule__ControlPlanePerfSpec__Group__7__Impl rule__ControlPlanePerfSpec__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4895:2: rule__ControlPlanePerfSpec__Group__7__Impl rule__ControlPlanePerfSpec__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__7__Impl_in_rule__ControlPlanePerfSpec__Group__710041);
+            rule__ControlPlanePerfSpec__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__8_in_rule__ControlPlanePerfSpec__Group__710044);
+            rule__ControlPlanePerfSpec__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__7"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4902:1: rule__ControlPlanePerfSpec__Group__7__Impl : ( ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 ) ) ;
+    public final void rule__ControlPlanePerfSpec__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4906:1: ( ( ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4907:1: ( ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4907:1: ( ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4908:1: ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 )
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4909:1: ( rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4909:2: rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7_in_rule__ControlPlanePerfSpec__Group__7__Impl10071);
+            rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4919:1: rule__ControlPlanePerfSpec__Group__8 : rule__ControlPlanePerfSpec__Group__8__Impl ;
+    public final void rule__ControlPlanePerfSpec__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4923:1: ( rule__ControlPlanePerfSpec__Group__8__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4924:2: rule__ControlPlanePerfSpec__Group__8__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ControlPlanePerfSpec__Group__8__Impl_in_rule__ControlPlanePerfSpec__Group__810101);
+            rule__ControlPlanePerfSpec__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__8"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4930:1: rule__ControlPlanePerfSpec__Group__8__Impl : ( '}' ) ;
+    public final void rule__ControlPlanePerfSpec__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4934:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4935:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4935:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4936:1: '}'
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__ControlPlanePerfSpec__Group__8__Impl10129); 
+             after(grammarAccess.getControlPlanePerfSpecAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__Group__8__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4967:1: rule__DataPlanePerfSpec__Group__0 : rule__DataPlanePerfSpec__Group__0__Impl rule__DataPlanePerfSpec__Group__1 ;
+    public final void rule__DataPlanePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4971:1: ( rule__DataPlanePerfSpec__Group__0__Impl rule__DataPlanePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4972:2: rule__DataPlanePerfSpec__Group__0__Impl rule__DataPlanePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__0__Impl_in_rule__DataPlanePerfSpec__Group__010178);
+            rule__DataPlanePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__1_in_rule__DataPlanePerfSpec__Group__010181);
+            rule__DataPlanePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4979:1: rule__DataPlanePerfSpec__Group__0__Impl : ( 'DataPlanePerfSpec' ) ;
+    public final void rule__DataPlanePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4983:1: ( ( 'DataPlanePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4984:1: ( 'DataPlanePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4984:1: ( 'DataPlanePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4985:1: 'DataPlanePerfSpec'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); 
+            match(input,45,FollowSets000.FOLLOW_45_in_rule__DataPlanePerfSpec__Group__0__Impl10209); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getDataPlanePerfSpecKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:4998:1: rule__DataPlanePerfSpec__Group__1 : rule__DataPlanePerfSpec__Group__1__Impl rule__DataPlanePerfSpec__Group__2 ;
+    public final void rule__DataPlanePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5002:1: ( rule__DataPlanePerfSpec__Group__1__Impl rule__DataPlanePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5003:2: rule__DataPlanePerfSpec__Group__1__Impl rule__DataPlanePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__1__Impl_in_rule__DataPlanePerfSpec__Group__110240);
+            rule__DataPlanePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__2_in_rule__DataPlanePerfSpec__Group__110243);
+            rule__DataPlanePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5010:1: rule__DataPlanePerfSpec__Group__1__Impl : ( '{' ) ;
+    public final void rule__DataPlanePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5014:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5015:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5015:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5016:1: '{'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__DataPlanePerfSpec__Group__1__Impl10271); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5029:1: rule__DataPlanePerfSpec__Group__2 : rule__DataPlanePerfSpec__Group__2__Impl rule__DataPlanePerfSpec__Group__3 ;
+    public final void rule__DataPlanePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5033:1: ( rule__DataPlanePerfSpec__Group__2__Impl rule__DataPlanePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5034:2: rule__DataPlanePerfSpec__Group__2__Impl rule__DataPlanePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__2__Impl_in_rule__DataPlanePerfSpec__Group__210302);
+            rule__DataPlanePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__3_in_rule__DataPlanePerfSpec__Group__210305);
+            rule__DataPlanePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5041:1: rule__DataPlanePerfSpec__Group__2__Impl : ( 'forwardingLatency' ) ;
+    public final void rule__DataPlanePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5045:1: ( ( 'forwardingLatency' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5046:1: ( 'forwardingLatency' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5046:1: ( 'forwardingLatency' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5047:1: 'forwardingLatency'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); 
+            match(input,48,FollowSets000.FOLLOW_48_in_rule__DataPlanePerfSpec__Group__2__Impl10333); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5060:1: rule__DataPlanePerfSpec__Group__3 : rule__DataPlanePerfSpec__Group__3__Impl rule__DataPlanePerfSpec__Group__4 ;
+    public final void rule__DataPlanePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5064:1: ( rule__DataPlanePerfSpec__Group__3__Impl rule__DataPlanePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5065:2: rule__DataPlanePerfSpec__Group__3__Impl rule__DataPlanePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__3__Impl_in_rule__DataPlanePerfSpec__Group__310364);
+            rule__DataPlanePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__4_in_rule__DataPlanePerfSpec__Group__310367);
+            rule__DataPlanePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5072:1: rule__DataPlanePerfSpec__Group__3__Impl : ( ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 ) ) ;
+    public final void rule__DataPlanePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5076:1: ( ( ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5077:1: ( ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5077:1: ( ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5078:1: ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 )
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5079:1: ( rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5079:2: rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3_in_rule__DataPlanePerfSpec__Group__3__Impl10394);
+            rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5089:1: rule__DataPlanePerfSpec__Group__4 : rule__DataPlanePerfSpec__Group__4__Impl rule__DataPlanePerfSpec__Group__5 ;
+    public final void rule__DataPlanePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5093:1: ( rule__DataPlanePerfSpec__Group__4__Impl rule__DataPlanePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5094:2: rule__DataPlanePerfSpec__Group__4__Impl rule__DataPlanePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__4__Impl_in_rule__DataPlanePerfSpec__Group__410424);
+            rule__DataPlanePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__5_in_rule__DataPlanePerfSpec__Group__410427);
+            rule__DataPlanePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5101:1: rule__DataPlanePerfSpec__Group__4__Impl : ( 'forwardingBandwidthPPS' ) ;
+    public final void rule__DataPlanePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5105:1: ( ( 'forwardingBandwidthPPS' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5106:1: ( 'forwardingBandwidthPPS' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5106:1: ( 'forwardingBandwidthPPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5107:1: 'forwardingBandwidthPPS'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); 
+            match(input,49,FollowSets000.FOLLOW_49_in_rule__DataPlanePerfSpec__Group__4__Impl10455); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5120:1: rule__DataPlanePerfSpec__Group__5 : rule__DataPlanePerfSpec__Group__5__Impl rule__DataPlanePerfSpec__Group__6 ;
+    public final void rule__DataPlanePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5124:1: ( rule__DataPlanePerfSpec__Group__5__Impl rule__DataPlanePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5125:2: rule__DataPlanePerfSpec__Group__5__Impl rule__DataPlanePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__5__Impl_in_rule__DataPlanePerfSpec__Group__510486);
+            rule__DataPlanePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__6_in_rule__DataPlanePerfSpec__Group__510489);
+            rule__DataPlanePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5132:1: rule__DataPlanePerfSpec__Group__5__Impl : ( ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 ) ) ;
+    public final void rule__DataPlanePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5136:1: ( ( ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5137:1: ( ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5137:1: ( ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5138:1: ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 )
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5139:1: ( rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5139:2: rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5_in_rule__DataPlanePerfSpec__Group__5__Impl10516);
+            rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5149:1: rule__DataPlanePerfSpec__Group__6 : rule__DataPlanePerfSpec__Group__6__Impl rule__DataPlanePerfSpec__Group__7 ;
+    public final void rule__DataPlanePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5153:1: ( rule__DataPlanePerfSpec__Group__6__Impl rule__DataPlanePerfSpec__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5154:2: rule__DataPlanePerfSpec__Group__6__Impl rule__DataPlanePerfSpec__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__6__Impl_in_rule__DataPlanePerfSpec__Group__610546);
+            rule__DataPlanePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__7_in_rule__DataPlanePerfSpec__Group__610549);
+            rule__DataPlanePerfSpec__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5161:1: rule__DataPlanePerfSpec__Group__6__Impl : ( 'forwardingBandwidthBPS' ) ;
+    public final void rule__DataPlanePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5165:1: ( ( 'forwardingBandwidthBPS' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5166:1: ( 'forwardingBandwidthBPS' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5166:1: ( 'forwardingBandwidthBPS' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5167:1: 'forwardingBandwidthBPS'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); 
+            match(input,50,FollowSets000.FOLLOW_50_in_rule__DataPlanePerfSpec__Group__6__Impl10577); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5180:1: rule__DataPlanePerfSpec__Group__7 : rule__DataPlanePerfSpec__Group__7__Impl rule__DataPlanePerfSpec__Group__8 ;
+    public final void rule__DataPlanePerfSpec__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5184:1: ( rule__DataPlanePerfSpec__Group__7__Impl rule__DataPlanePerfSpec__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5185:2: rule__DataPlanePerfSpec__Group__7__Impl rule__DataPlanePerfSpec__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__7__Impl_in_rule__DataPlanePerfSpec__Group__710608);
+            rule__DataPlanePerfSpec__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__8_in_rule__DataPlanePerfSpec__Group__710611);
+            rule__DataPlanePerfSpec__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__7"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5192:1: rule__DataPlanePerfSpec__Group__7__Impl : ( ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 ) ) ;
+    public final void rule__DataPlanePerfSpec__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5196:1: ( ( ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5197:1: ( ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5197:1: ( ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5198:1: ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 )
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5199:1: ( rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5199:2: rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7_in_rule__DataPlanePerfSpec__Group__7__Impl10638);
+            rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__7__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5209:1: rule__DataPlanePerfSpec__Group__8 : rule__DataPlanePerfSpec__Group__8__Impl rule__DataPlanePerfSpec__Group__9 ;
+    public final void rule__DataPlanePerfSpec__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5213:1: ( rule__DataPlanePerfSpec__Group__8__Impl rule__DataPlanePerfSpec__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5214:2: rule__DataPlanePerfSpec__Group__8__Impl rule__DataPlanePerfSpec__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__8__Impl_in_rule__DataPlanePerfSpec__Group__810668);
+            rule__DataPlanePerfSpec__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__9_in_rule__DataPlanePerfSpec__Group__810671);
+            rule__DataPlanePerfSpec__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__8"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5221:1: rule__DataPlanePerfSpec__Group__8__Impl : ( 'packetProcessingTime' ) ;
+    public final void rule__DataPlanePerfSpec__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5225:1: ( ( 'packetProcessingTime' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5226:1: ( 'packetProcessingTime' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5226:1: ( 'packetProcessingTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5227:1: 'packetProcessingTime'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); 
+            match(input,34,FollowSets000.FOLLOW_34_in_rule__DataPlanePerfSpec__Group__8__Impl10699); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__8__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5240:1: rule__DataPlanePerfSpec__Group__9 : rule__DataPlanePerfSpec__Group__9__Impl rule__DataPlanePerfSpec__Group__10 ;
+    public final void rule__DataPlanePerfSpec__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5244:1: ( rule__DataPlanePerfSpec__Group__9__Impl rule__DataPlanePerfSpec__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5245:2: rule__DataPlanePerfSpec__Group__9__Impl rule__DataPlanePerfSpec__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__9__Impl_in_rule__DataPlanePerfSpec__Group__910730);
+            rule__DataPlanePerfSpec__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__10_in_rule__DataPlanePerfSpec__Group__910733);
+            rule__DataPlanePerfSpec__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__9"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5252:1: rule__DataPlanePerfSpec__Group__9__Impl : ( ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 ) ) ;
+    public final void rule__DataPlanePerfSpec__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5256:1: ( ( ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5257:1: ( ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5257:1: ( ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5258:1: ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 )
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5259:1: ( rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5259:2: rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9_in_rule__DataPlanePerfSpec__Group__9__Impl10760);
+            rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__9__Impl"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5269:1: rule__DataPlanePerfSpec__Group__10 : rule__DataPlanePerfSpec__Group__10__Impl ;
+    public final void rule__DataPlanePerfSpec__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5273:1: ( rule__DataPlanePerfSpec__Group__10__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5274:2: rule__DataPlanePerfSpec__Group__10__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__DataPlanePerfSpec__Group__10__Impl_in_rule__DataPlanePerfSpec__Group__1010790);
+            rule__DataPlanePerfSpec__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__10"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5280:1: rule__DataPlanePerfSpec__Group__10__Impl : ( '}' ) ;
+    public final void rule__DataPlanePerfSpec__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5284:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5285:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5285:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5286:1: '}'
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__DataPlanePerfSpec__Group__10__Impl10818); 
+             after(grammarAccess.getDataPlanePerfSpecAccess().getRightCurlyBracketKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__Group__10__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5321:1: rule__EndNodePerfSpec__Group__0 : rule__EndNodePerfSpec__Group__0__Impl rule__EndNodePerfSpec__Group__1 ;
+    public final void rule__EndNodePerfSpec__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5325:1: ( rule__EndNodePerfSpec__Group__0__Impl rule__EndNodePerfSpec__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5326:2: rule__EndNodePerfSpec__Group__0__Impl rule__EndNodePerfSpec__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__0__Impl_in_rule__EndNodePerfSpec__Group__010871);
+            rule__EndNodePerfSpec__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__1_in_rule__EndNodePerfSpec__Group__010874);
+            rule__EndNodePerfSpec__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__0"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5333:1: rule__EndNodePerfSpec__Group__0__Impl : ( 'EndNodePerfSpec' ) ;
+    public final void rule__EndNodePerfSpec__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5337:1: ( ( 'EndNodePerfSpec' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5338:1: ( 'EndNodePerfSpec' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5338:1: ( 'EndNodePerfSpec' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5339:1: 'EndNodePerfSpec'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); 
+            match(input,51,FollowSets000.FOLLOW_51_in_rule__EndNodePerfSpec__Group__0__Impl10902); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getEndNodePerfSpecKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5352:1: rule__EndNodePerfSpec__Group__1 : rule__EndNodePerfSpec__Group__1__Impl rule__EndNodePerfSpec__Group__2 ;
+    public final void rule__EndNodePerfSpec__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5356:1: ( rule__EndNodePerfSpec__Group__1__Impl rule__EndNodePerfSpec__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5357:2: rule__EndNodePerfSpec__Group__1__Impl rule__EndNodePerfSpec__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__1__Impl_in_rule__EndNodePerfSpec__Group__110933);
+            rule__EndNodePerfSpec__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__2_in_rule__EndNodePerfSpec__Group__110936);
+            rule__EndNodePerfSpec__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__1"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5364:1: rule__EndNodePerfSpec__Group__1__Impl : ( '{' ) ;
+    public final void rule__EndNodePerfSpec__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5368:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5369:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5369:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5370:1: '{'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__EndNodePerfSpec__Group__1__Impl10964); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5383:1: rule__EndNodePerfSpec__Group__2 : rule__EndNodePerfSpec__Group__2__Impl rule__EndNodePerfSpec__Group__3 ;
+    public final void rule__EndNodePerfSpec__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5387:1: ( rule__EndNodePerfSpec__Group__2__Impl rule__EndNodePerfSpec__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5388:2: rule__EndNodePerfSpec__Group__2__Impl rule__EndNodePerfSpec__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__2__Impl_in_rule__EndNodePerfSpec__Group__210995);
+            rule__EndNodePerfSpec__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__3_in_rule__EndNodePerfSpec__Group__210998);
+            rule__EndNodePerfSpec__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__2"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5395:1: rule__EndNodePerfSpec__Group__2__Impl : ( 'softwareLayersDelay' ) ;
+    public final void rule__EndNodePerfSpec__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5399:1: ( ( 'softwareLayersDelay' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5400:1: ( 'softwareLayersDelay' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5400:1: ( 'softwareLayersDelay' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5401:1: 'softwareLayersDelay'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); 
+            match(input,52,FollowSets000.FOLLOW_52_in_rule__EndNodePerfSpec__Group__2__Impl11026); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5414:1: rule__EndNodePerfSpec__Group__3 : rule__EndNodePerfSpec__Group__3__Impl rule__EndNodePerfSpec__Group__4 ;
+    public final void rule__EndNodePerfSpec__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5418:1: ( rule__EndNodePerfSpec__Group__3__Impl rule__EndNodePerfSpec__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5419:2: rule__EndNodePerfSpec__Group__3__Impl rule__EndNodePerfSpec__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__3__Impl_in_rule__EndNodePerfSpec__Group__311057);
+            rule__EndNodePerfSpec__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__4_in_rule__EndNodePerfSpec__Group__311060);
+            rule__EndNodePerfSpec__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__3"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5426:1: rule__EndNodePerfSpec__Group__3__Impl : ( ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 ) ) ;
+    public final void rule__EndNodePerfSpec__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5430:1: ( ( ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5431:1: ( ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5431:1: ( ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5432:1: ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 )
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5433:1: ( rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5433:2: rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3_in_rule__EndNodePerfSpec__Group__3__Impl11087);
+            rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5443:1: rule__EndNodePerfSpec__Group__4 : rule__EndNodePerfSpec__Group__4__Impl rule__EndNodePerfSpec__Group__5 ;
+    public final void rule__EndNodePerfSpec__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5447:1: ( rule__EndNodePerfSpec__Group__4__Impl rule__EndNodePerfSpec__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5448:2: rule__EndNodePerfSpec__Group__4__Impl rule__EndNodePerfSpec__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__4__Impl_in_rule__EndNodePerfSpec__Group__411117);
+            rule__EndNodePerfSpec__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__5_in_rule__EndNodePerfSpec__Group__411120);
+            rule__EndNodePerfSpec__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__4"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5455:1: rule__EndNodePerfSpec__Group__4__Impl : ( ( rule__EndNodePerfSpec__Group_4__0 )? ) ;
+    public final void rule__EndNodePerfSpec__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5459:1: ( ( ( rule__EndNodePerfSpec__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5460:1: ( ( rule__EndNodePerfSpec__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5460:1: ( ( rule__EndNodePerfSpec__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5461:1: ( rule__EndNodePerfSpec__Group_4__0 )?
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5462:1: ( rule__EndNodePerfSpec__Group_4__0 )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
+
+            if ( (LA21_0==43) ) {
+                alt21=1;
+            }
+            switch (alt21) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5462:2: rule__EndNodePerfSpec__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_4__0_in_rule__EndNodePerfSpec__Group__4__Impl11147);
+                    rule__EndNodePerfSpec__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5472:1: rule__EndNodePerfSpec__Group__5 : rule__EndNodePerfSpec__Group__5__Impl rule__EndNodePerfSpec__Group__6 ;
+    public final void rule__EndNodePerfSpec__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5476:1: ( rule__EndNodePerfSpec__Group__5__Impl rule__EndNodePerfSpec__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5477:2: rule__EndNodePerfSpec__Group__5__Impl rule__EndNodePerfSpec__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__5__Impl_in_rule__EndNodePerfSpec__Group__511178);
+            rule__EndNodePerfSpec__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__6_in_rule__EndNodePerfSpec__Group__511181);
+            rule__EndNodePerfSpec__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__5"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5484:1: rule__EndNodePerfSpec__Group__5__Impl : ( ( rule__EndNodePerfSpec__Group_5__0 )? ) ;
+    public final void rule__EndNodePerfSpec__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5488:1: ( ( ( rule__EndNodePerfSpec__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5489:1: ( ( rule__EndNodePerfSpec__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5489:1: ( ( rule__EndNodePerfSpec__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5490:1: ( rule__EndNodePerfSpec__Group_5__0 )?
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5491:1: ( rule__EndNodePerfSpec__Group_5__0 )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==44) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5491:2: rule__EndNodePerfSpec__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_5__0_in_rule__EndNodePerfSpec__Group__5__Impl11208);
+                    rule__EndNodePerfSpec__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__5__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5501:1: rule__EndNodePerfSpec__Group__6 : rule__EndNodePerfSpec__Group__6__Impl ;
+    public final void rule__EndNodePerfSpec__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5505:1: ( rule__EndNodePerfSpec__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5506:2: rule__EndNodePerfSpec__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group__6__Impl_in_rule__EndNodePerfSpec__Group__611239);
+            rule__EndNodePerfSpec__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__6"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5512:1: rule__EndNodePerfSpec__Group__6__Impl : ( '}' ) ;
+    public final void rule__EndNodePerfSpec__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5516:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5517:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5517:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5518:1: '}'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__EndNodePerfSpec__Group__6__Impl11267); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group__6__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5545:1: rule__EndNodePerfSpec__Group_4__0 : rule__EndNodePerfSpec__Group_4__0__Impl rule__EndNodePerfSpec__Group_4__1 ;
+    public final void rule__EndNodePerfSpec__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5549:1: ( rule__EndNodePerfSpec__Group_4__0__Impl rule__EndNodePerfSpec__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5550:2: rule__EndNodePerfSpec__Group_4__0__Impl rule__EndNodePerfSpec__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_4__0__Impl_in_rule__EndNodePerfSpec__Group_4__011312);
+            rule__EndNodePerfSpec__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_4__1_in_rule__EndNodePerfSpec__Group_4__011315);
+            rule__EndNodePerfSpec__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_4__0"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5557:1: rule__EndNodePerfSpec__Group_4__0__Impl : ( 'dataplane' ) ;
+    public final void rule__EndNodePerfSpec__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5561:1: ( ( 'dataplane' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5562:1: ( 'dataplane' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5562:1: ( 'dataplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5563:1: 'dataplane'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); 
+            match(input,43,FollowSets000.FOLLOW_43_in_rule__EndNodePerfSpec__Group_4__0__Impl11343); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5576:1: rule__EndNodePerfSpec__Group_4__1 : rule__EndNodePerfSpec__Group_4__1__Impl ;
+    public final void rule__EndNodePerfSpec__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5580:1: ( rule__EndNodePerfSpec__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5581:2: rule__EndNodePerfSpec__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_4__1__Impl_in_rule__EndNodePerfSpec__Group_4__111374);
+            rule__EndNodePerfSpec__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_4__1"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5587:1: rule__EndNodePerfSpec__Group_4__1__Impl : ( ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 ) ) ;
+    public final void rule__EndNodePerfSpec__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5591:1: ( ( ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5592:1: ( ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5592:1: ( ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5593:1: ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 )
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5594:1: ( rule__EndNodePerfSpec__DataplaneAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5594:2: rule__EndNodePerfSpec__DataplaneAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__DataplaneAssignment_4_1_in_rule__EndNodePerfSpec__Group_4__1__Impl11401);
+            rule__EndNodePerfSpec__DataplaneAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5608:1: rule__EndNodePerfSpec__Group_5__0 : rule__EndNodePerfSpec__Group_5__0__Impl rule__EndNodePerfSpec__Group_5__1 ;
+    public final void rule__EndNodePerfSpec__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5612:1: ( rule__EndNodePerfSpec__Group_5__0__Impl rule__EndNodePerfSpec__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5613:2: rule__EndNodePerfSpec__Group_5__0__Impl rule__EndNodePerfSpec__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_5__0__Impl_in_rule__EndNodePerfSpec__Group_5__011435);
+            rule__EndNodePerfSpec__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_5__1_in_rule__EndNodePerfSpec__Group_5__011438);
+            rule__EndNodePerfSpec__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_5__0"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5620:1: rule__EndNodePerfSpec__Group_5__0__Impl : ( 'controlplane' ) ;
+    public final void rule__EndNodePerfSpec__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5624:1: ( ( 'controlplane' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5625:1: ( 'controlplane' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5625:1: ( 'controlplane' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5626:1: 'controlplane'
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); 
+            match(input,44,FollowSets000.FOLLOW_44_in_rule__EndNodePerfSpec__Group_5__0__Impl11466); 
+             after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5639:1: rule__EndNodePerfSpec__Group_5__1 : rule__EndNodePerfSpec__Group_5__1__Impl ;
+    public final void rule__EndNodePerfSpec__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5643:1: ( rule__EndNodePerfSpec__Group_5__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5644:2: rule__EndNodePerfSpec__Group_5__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__Group_5__1__Impl_in_rule__EndNodePerfSpec__Group_5__111497);
+            rule__EndNodePerfSpec__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_5__1"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5650:1: rule__EndNodePerfSpec__Group_5__1__Impl : ( ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 ) ) ;
+    public final void rule__EndNodePerfSpec__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5654:1: ( ( ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5655:1: ( ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5655:1: ( ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5656:1: ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 )
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5657:1: ( rule__EndNodePerfSpec__ControlplaneAssignment_5_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5657:2: rule__EndNodePerfSpec__ControlplaneAssignment_5_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EndNodePerfSpec__ControlplaneAssignment_5_1_in_rule__EndNodePerfSpec__Group_5__1__Impl11524);
+            rule__EndNodePerfSpec__ControlplaneAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5671:1: rule__NetworkTraffic__Group__0 : rule__NetworkTraffic__Group__0__Impl rule__NetworkTraffic__Group__1 ;
+    public final void rule__NetworkTraffic__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5675:1: ( rule__NetworkTraffic__Group__0__Impl rule__NetworkTraffic__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5676:2: rule__NetworkTraffic__Group__0__Impl rule__NetworkTraffic__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__0__Impl_in_rule__NetworkTraffic__Group__011558);
+            rule__NetworkTraffic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__1_in_rule__NetworkTraffic__Group__011561);
+            rule__NetworkTraffic__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__0"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5683:1: rule__NetworkTraffic__Group__0__Impl : ( () ) ;
+    public final void rule__NetworkTraffic__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5687:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5688:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5688:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5689:1: ()
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5690:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5692:1: 
+            {
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5702:1: rule__NetworkTraffic__Group__1 : rule__NetworkTraffic__Group__1__Impl rule__NetworkTraffic__Group__2 ;
+    public final void rule__NetworkTraffic__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5706:1: ( rule__NetworkTraffic__Group__1__Impl rule__NetworkTraffic__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5707:2: rule__NetworkTraffic__Group__1__Impl rule__NetworkTraffic__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__1__Impl_in_rule__NetworkTraffic__Group__111619);
+            rule__NetworkTraffic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__2_in_rule__NetworkTraffic__Group__111622);
+            rule__NetworkTraffic__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5714:1: rule__NetworkTraffic__Group__1__Impl : ( 'NetworkTraffic' ) ;
+    public final void rule__NetworkTraffic__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5718:1: ( ( 'NetworkTraffic' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5719:1: ( 'NetworkTraffic' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5719:1: ( 'NetworkTraffic' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5720:1: 'NetworkTraffic'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); 
+            match(input,53,FollowSets000.FOLLOW_53_in_rule__NetworkTraffic__Group__1__Impl11650); 
+             after(grammarAccess.getNetworkTrafficAccess().getNetworkTrafficKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5733:1: rule__NetworkTraffic__Group__2 : rule__NetworkTraffic__Group__2__Impl rule__NetworkTraffic__Group__3 ;
+    public final void rule__NetworkTraffic__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5737:1: ( rule__NetworkTraffic__Group__2__Impl rule__NetworkTraffic__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5738:2: rule__NetworkTraffic__Group__2__Impl rule__NetworkTraffic__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__2__Impl_in_rule__NetworkTraffic__Group__211681);
+            rule__NetworkTraffic__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__3_in_rule__NetworkTraffic__Group__211684);
+            rule__NetworkTraffic__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__2"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5745:1: rule__NetworkTraffic__Group__2__Impl : ( '{' ) ;
+    public final void rule__NetworkTraffic__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5749:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5750:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5750:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5751:1: '{'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkTraffic__Group__2__Impl11712); 
+             after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5764:1: rule__NetworkTraffic__Group__3 : rule__NetworkTraffic__Group__3__Impl rule__NetworkTraffic__Group__4 ;
+    public final void rule__NetworkTraffic__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5768:1: ( rule__NetworkTraffic__Group__3__Impl rule__NetworkTraffic__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5769:2: rule__NetworkTraffic__Group__3__Impl rule__NetworkTraffic__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__3__Impl_in_rule__NetworkTraffic__Group__311743);
+            rule__NetworkTraffic__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__4_in_rule__NetworkTraffic__Group__311746);
+            rule__NetworkTraffic__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__3"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5776:1: rule__NetworkTraffic__Group__3__Impl : ( ( rule__NetworkTraffic__Group_3__0 )? ) ;
+    public final void rule__NetworkTraffic__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5780:1: ( ( ( rule__NetworkTraffic__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5781:1: ( ( rule__NetworkTraffic__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5781:1: ( ( rule__NetworkTraffic__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5782:1: ( rule__NetworkTraffic__Group_3__0 )?
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5783:1: ( rule__NetworkTraffic__Group_3__0 )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==54) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5783:2: rule__NetworkTraffic__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__0_in_rule__NetworkTraffic__Group__3__Impl11773);
+                    rule__NetworkTraffic__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5793:1: rule__NetworkTraffic__Group__4 : rule__NetworkTraffic__Group__4__Impl rule__NetworkTraffic__Group__5 ;
+    public final void rule__NetworkTraffic__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5797:1: ( rule__NetworkTraffic__Group__4__Impl rule__NetworkTraffic__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5798:2: rule__NetworkTraffic__Group__4__Impl rule__NetworkTraffic__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__4__Impl_in_rule__NetworkTraffic__Group__411804);
+            rule__NetworkTraffic__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__5_in_rule__NetworkTraffic__Group__411807);
+            rule__NetworkTraffic__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__4"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5805:1: rule__NetworkTraffic__Group__4__Impl : ( ( rule__NetworkTraffic__Group_4__0 )? ) ;
+    public final void rule__NetworkTraffic__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5809:1: ( ( ( rule__NetworkTraffic__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5810:1: ( ( rule__NetworkTraffic__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5810:1: ( ( rule__NetworkTraffic__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5811:1: ( rule__NetworkTraffic__Group_4__0 )?
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5812:1: ( rule__NetworkTraffic__Group_4__0 )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==55) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5812:2: rule__NetworkTraffic__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__0_in_rule__NetworkTraffic__Group__4__Impl11834);
+                    rule__NetworkTraffic__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5822:1: rule__NetworkTraffic__Group__5 : rule__NetworkTraffic__Group__5__Impl ;
+    public final void rule__NetworkTraffic__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5826:1: ( rule__NetworkTraffic__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5827:2: rule__NetworkTraffic__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group__5__Impl_in_rule__NetworkTraffic__Group__511865);
+            rule__NetworkTraffic__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__5"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5833:1: rule__NetworkTraffic__Group__5__Impl : ( '}' ) ;
+    public final void rule__NetworkTraffic__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5837:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5838:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5838:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5839:1: '}'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkTraffic__Group__5__Impl11893); 
+             after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5864:1: rule__NetworkTraffic__Group_3__0 : rule__NetworkTraffic__Group_3__0__Impl rule__NetworkTraffic__Group_3__1 ;
+    public final void rule__NetworkTraffic__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5868:1: ( rule__NetworkTraffic__Group_3__0__Impl rule__NetworkTraffic__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5869:2: rule__NetworkTraffic__Group_3__0__Impl rule__NetworkTraffic__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__0__Impl_in_rule__NetworkTraffic__Group_3__011936);
+            rule__NetworkTraffic__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__1_in_rule__NetworkTraffic__Group_3__011939);
+            rule__NetworkTraffic__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__0"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5876:1: rule__NetworkTraffic__Group_3__0__Impl : ( 'flows' ) ;
+    public final void rule__NetworkTraffic__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5880:1: ( ( 'flows' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5881:1: ( 'flows' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5881:1: ( 'flows' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5882:1: 'flows'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); 
+            match(input,54,FollowSets000.FOLLOW_54_in_rule__NetworkTraffic__Group_3__0__Impl11967); 
+             after(grammarAccess.getNetworkTrafficAccess().getFlowsKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5895:1: rule__NetworkTraffic__Group_3__1 : rule__NetworkTraffic__Group_3__1__Impl rule__NetworkTraffic__Group_3__2 ;
+    public final void rule__NetworkTraffic__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5899:1: ( rule__NetworkTraffic__Group_3__1__Impl rule__NetworkTraffic__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5900:2: rule__NetworkTraffic__Group_3__1__Impl rule__NetworkTraffic__Group_3__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__1__Impl_in_rule__NetworkTraffic__Group_3__111998);
+            rule__NetworkTraffic__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__2_in_rule__NetworkTraffic__Group_3__112001);
+            rule__NetworkTraffic__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5907:1: rule__NetworkTraffic__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__NetworkTraffic__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5911:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5912:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5912:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5913:1: '{'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkTraffic__Group_3__1__Impl12029); 
+             after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5926:1: rule__NetworkTraffic__Group_3__2 : rule__NetworkTraffic__Group_3__2__Impl rule__NetworkTraffic__Group_3__3 ;
+    public final void rule__NetworkTraffic__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5930:1: ( rule__NetworkTraffic__Group_3__2__Impl rule__NetworkTraffic__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5931:2: rule__NetworkTraffic__Group_3__2__Impl rule__NetworkTraffic__Group_3__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__2__Impl_in_rule__NetworkTraffic__Group_3__212060);
+            rule__NetworkTraffic__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__3_in_rule__NetworkTraffic__Group_3__212063);
+            rule__NetworkTraffic__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__2"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5938:1: rule__NetworkTraffic__Group_3__2__Impl : ( ( rule__NetworkTraffic__FlowsAssignment_3_2 ) ) ;
+    public final void rule__NetworkTraffic__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5942:1: ( ( ( rule__NetworkTraffic__FlowsAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5943:1: ( ( rule__NetworkTraffic__FlowsAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5943:1: ( ( rule__NetworkTraffic__FlowsAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5944:1: ( rule__NetworkTraffic__FlowsAssignment_3_2 )
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5945:1: ( rule__NetworkTraffic__FlowsAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5945:2: rule__NetworkTraffic__FlowsAssignment_3_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__FlowsAssignment_3_2_in_rule__NetworkTraffic__Group_3__2__Impl12090);
+            rule__NetworkTraffic__FlowsAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5955:1: rule__NetworkTraffic__Group_3__3 : rule__NetworkTraffic__Group_3__3__Impl rule__NetworkTraffic__Group_3__4 ;
+    public final void rule__NetworkTraffic__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5959:1: ( rule__NetworkTraffic__Group_3__3__Impl rule__NetworkTraffic__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5960:2: rule__NetworkTraffic__Group_3__3__Impl rule__NetworkTraffic__Group_3__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__3__Impl_in_rule__NetworkTraffic__Group_3__312120);
+            rule__NetworkTraffic__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__4_in_rule__NetworkTraffic__Group_3__312123);
+            rule__NetworkTraffic__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__3"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5967:1: rule__NetworkTraffic__Group_3__3__Impl : ( ( rule__NetworkTraffic__Group_3_3__0 )* ) ;
+    public final void rule__NetworkTraffic__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5971:1: ( ( ( rule__NetworkTraffic__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5972:1: ( ( rule__NetworkTraffic__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5972:1: ( ( rule__NetworkTraffic__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5973:1: ( rule__NetworkTraffic__Group_3_3__0 )*
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5974:1: ( rule__NetworkTraffic__Group_3_3__0 )*
+            loop25:
+            do {
+                int alt25=2;
+                int LA25_0 = input.LA(1);
+
+                if ( (LA25_0==31) ) {
+                    alt25=1;
+                }
+
+
+                switch (alt25) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5974:2: rule__NetworkTraffic__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3_3__0_in_rule__NetworkTraffic__Group_3__3__Impl12150);
+            	    rule__NetworkTraffic__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop25;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkTrafficAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5984:1: rule__NetworkTraffic__Group_3__4 : rule__NetworkTraffic__Group_3__4__Impl ;
+    public final void rule__NetworkTraffic__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5988:1: ( rule__NetworkTraffic__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5989:2: rule__NetworkTraffic__Group_3__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3__4__Impl_in_rule__NetworkTraffic__Group_3__412181);
+            rule__NetworkTraffic__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__4"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5995:1: rule__NetworkTraffic__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__NetworkTraffic__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:5999:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6000:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6000:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6001:1: '}'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkTraffic__Group_3__4__Impl12209); 
+             after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6024:1: rule__NetworkTraffic__Group_3_3__0 : rule__NetworkTraffic__Group_3_3__0__Impl rule__NetworkTraffic__Group_3_3__1 ;
+    public final void rule__NetworkTraffic__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6028:1: ( rule__NetworkTraffic__Group_3_3__0__Impl rule__NetworkTraffic__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6029:2: rule__NetworkTraffic__Group_3_3__0__Impl rule__NetworkTraffic__Group_3_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3_3__0__Impl_in_rule__NetworkTraffic__Group_3_3__012250);
+            rule__NetworkTraffic__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3_3__1_in_rule__NetworkTraffic__Group_3_3__012253);
+            rule__NetworkTraffic__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3_3__0"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6036:1: rule__NetworkTraffic__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkTraffic__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6040:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6041:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6041:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6042:1: ','
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__NetworkTraffic__Group_3_3__0__Impl12281); 
+             after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6055:1: rule__NetworkTraffic__Group_3_3__1 : rule__NetworkTraffic__Group_3_3__1__Impl ;
+    public final void rule__NetworkTraffic__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6059:1: ( rule__NetworkTraffic__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6060:2: rule__NetworkTraffic__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_3_3__1__Impl_in_rule__NetworkTraffic__Group_3_3__112312);
+            rule__NetworkTraffic__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3_3__1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6066:1: rule__NetworkTraffic__Group_3_3__1__Impl : ( ( rule__NetworkTraffic__FlowsAssignment_3_3_1 ) ) ;
+    public final void rule__NetworkTraffic__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6070:1: ( ( ( rule__NetworkTraffic__FlowsAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6071:1: ( ( rule__NetworkTraffic__FlowsAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6071:1: ( ( rule__NetworkTraffic__FlowsAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6072:1: ( rule__NetworkTraffic__FlowsAssignment_3_3_1 )
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6073:1: ( rule__NetworkTraffic__FlowsAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6073:2: rule__NetworkTraffic__FlowsAssignment_3_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__FlowsAssignment_3_3_1_in_rule__NetworkTraffic__Group_3_3__1__Impl12339);
+            rule__NetworkTraffic__FlowsAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getFlowsAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6087:1: rule__NetworkTraffic__Group_4__0 : rule__NetworkTraffic__Group_4__0__Impl rule__NetworkTraffic__Group_4__1 ;
+    public final void rule__NetworkTraffic__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6091:1: ( rule__NetworkTraffic__Group_4__0__Impl rule__NetworkTraffic__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6092:2: rule__NetworkTraffic__Group_4__0__Impl rule__NetworkTraffic__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__0__Impl_in_rule__NetworkTraffic__Group_4__012373);
+            rule__NetworkTraffic__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__1_in_rule__NetworkTraffic__Group_4__012376);
+            rule__NetworkTraffic__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__0"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6099:1: rule__NetworkTraffic__Group_4__0__Impl : ( 'software' ) ;
+    public final void rule__NetworkTraffic__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6103:1: ( ( 'software' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6104:1: ( 'software' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6104:1: ( 'software' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6105:1: 'software'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); 
+            match(input,55,FollowSets000.FOLLOW_55_in_rule__NetworkTraffic__Group_4__0__Impl12404); 
+             after(grammarAccess.getNetworkTrafficAccess().getSoftwareKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6118:1: rule__NetworkTraffic__Group_4__1 : rule__NetworkTraffic__Group_4__1__Impl rule__NetworkTraffic__Group_4__2 ;
+    public final void rule__NetworkTraffic__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6122:1: ( rule__NetworkTraffic__Group_4__1__Impl rule__NetworkTraffic__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6123:2: rule__NetworkTraffic__Group_4__1__Impl rule__NetworkTraffic__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__1__Impl_in_rule__NetworkTraffic__Group_4__112435);
+            rule__NetworkTraffic__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__2_in_rule__NetworkTraffic__Group_4__112438);
+            rule__NetworkTraffic__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6130:1: rule__NetworkTraffic__Group_4__1__Impl : ( '{' ) ;
+    public final void rule__NetworkTraffic__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6134:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6135:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6135:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6136:1: '{'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkTraffic__Group_4__1__Impl12466); 
+             after(grammarAccess.getNetworkTrafficAccess().getLeftCurlyBracketKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6149:1: rule__NetworkTraffic__Group_4__2 : rule__NetworkTraffic__Group_4__2__Impl rule__NetworkTraffic__Group_4__3 ;
+    public final void rule__NetworkTraffic__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6153:1: ( rule__NetworkTraffic__Group_4__2__Impl rule__NetworkTraffic__Group_4__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6154:2: rule__NetworkTraffic__Group_4__2__Impl rule__NetworkTraffic__Group_4__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__2__Impl_in_rule__NetworkTraffic__Group_4__212497);
+            rule__NetworkTraffic__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__3_in_rule__NetworkTraffic__Group_4__212500);
+            rule__NetworkTraffic__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__2"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6161:1: rule__NetworkTraffic__Group_4__2__Impl : ( ( rule__NetworkTraffic__SoftwareAssignment_4_2 ) ) ;
+    public final void rule__NetworkTraffic__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6165:1: ( ( ( rule__NetworkTraffic__SoftwareAssignment_4_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6166:1: ( ( rule__NetworkTraffic__SoftwareAssignment_4_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6166:1: ( ( rule__NetworkTraffic__SoftwareAssignment_4_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6167:1: ( rule__NetworkTraffic__SoftwareAssignment_4_2 )
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6168:1: ( rule__NetworkTraffic__SoftwareAssignment_4_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6168:2: rule__NetworkTraffic__SoftwareAssignment_4_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__SoftwareAssignment_4_2_in_rule__NetworkTraffic__Group_4__2__Impl12527);
+            rule__NetworkTraffic__SoftwareAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6178:1: rule__NetworkTraffic__Group_4__3 : rule__NetworkTraffic__Group_4__3__Impl rule__NetworkTraffic__Group_4__4 ;
+    public final void rule__NetworkTraffic__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6182:1: ( rule__NetworkTraffic__Group_4__3__Impl rule__NetworkTraffic__Group_4__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6183:2: rule__NetworkTraffic__Group_4__3__Impl rule__NetworkTraffic__Group_4__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__3__Impl_in_rule__NetworkTraffic__Group_4__312557);
+            rule__NetworkTraffic__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__4_in_rule__NetworkTraffic__Group_4__312560);
+            rule__NetworkTraffic__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__3"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6190:1: rule__NetworkTraffic__Group_4__3__Impl : ( ( rule__NetworkTraffic__Group_4_3__0 )* ) ;
+    public final void rule__NetworkTraffic__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6194:1: ( ( ( rule__NetworkTraffic__Group_4_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6195:1: ( ( rule__NetworkTraffic__Group_4_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6195:1: ( ( rule__NetworkTraffic__Group_4_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6196:1: ( rule__NetworkTraffic__Group_4_3__0 )*
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6197:1: ( rule__NetworkTraffic__Group_4_3__0 )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( (LA26_0==31) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6197:2: rule__NetworkTraffic__Group_4_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4_3__0_in_rule__NetworkTraffic__Group_4__3__Impl12587);
+            	    rule__NetworkTraffic__Group_4_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkTrafficAccess().getGroup_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6207:1: rule__NetworkTraffic__Group_4__4 : rule__NetworkTraffic__Group_4__4__Impl ;
+    public final void rule__NetworkTraffic__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6211:1: ( rule__NetworkTraffic__Group_4__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6212:2: rule__NetworkTraffic__Group_4__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4__4__Impl_in_rule__NetworkTraffic__Group_4__412618);
+            rule__NetworkTraffic__Group_4__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__4"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6218:1: rule__NetworkTraffic__Group_4__4__Impl : ( '}' ) ;
+    public final void rule__NetworkTraffic__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6222:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6223:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6223:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6224:1: '}'
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkTraffic__Group_4__4__Impl12646); 
+             after(grammarAccess.getNetworkTrafficAccess().getRightCurlyBracketKeyword_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6247:1: rule__NetworkTraffic__Group_4_3__0 : rule__NetworkTraffic__Group_4_3__0__Impl rule__NetworkTraffic__Group_4_3__1 ;
+    public final void rule__NetworkTraffic__Group_4_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6251:1: ( rule__NetworkTraffic__Group_4_3__0__Impl rule__NetworkTraffic__Group_4_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6252:2: rule__NetworkTraffic__Group_4_3__0__Impl rule__NetworkTraffic__Group_4_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4_3__0__Impl_in_rule__NetworkTraffic__Group_4_3__012687);
+            rule__NetworkTraffic__Group_4_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4_3__1_in_rule__NetworkTraffic__Group_4_3__012690);
+            rule__NetworkTraffic__Group_4_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4_3__0"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6259:1: rule__NetworkTraffic__Group_4_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkTraffic__Group_4_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6263:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6264:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6264:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6265:1: ','
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__NetworkTraffic__Group_4_3__0__Impl12718); 
+             after(grammarAccess.getNetworkTrafficAccess().getCommaKeyword_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6278:1: rule__NetworkTraffic__Group_4_3__1 : rule__NetworkTraffic__Group_4_3__1__Impl ;
+    public final void rule__NetworkTraffic__Group_4_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6282:1: ( rule__NetworkTraffic__Group_4_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6283:2: rule__NetworkTraffic__Group_4_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__Group_4_3__1__Impl_in_rule__NetworkTraffic__Group_4_3__112749);
+            rule__NetworkTraffic__Group_4_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4_3__1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__Group_4_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6289:1: rule__NetworkTraffic__Group_4_3__1__Impl : ( ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 ) ) ;
+    public final void rule__NetworkTraffic__Group_4_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6293:1: ( ( ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6294:1: ( ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6294:1: ( ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6295:1: ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 )
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6296:1: ( rule__NetworkTraffic__SoftwareAssignment_4_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6296:2: rule__NetworkTraffic__SoftwareAssignment_4_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkTraffic__SoftwareAssignment_4_3_1_in_rule__NetworkTraffic__Group_4_3__1__Impl12776);
+            rule__NetworkTraffic__SoftwareAssignment_4_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkTrafficAccess().getSoftwareAssignment_4_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__Group_4_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6310:1: rule__NetworkStructure__Group__0 : rule__NetworkStructure__Group__0__Impl rule__NetworkStructure__Group__1 ;
+    public final void rule__NetworkStructure__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6314:1: ( rule__NetworkStructure__Group__0__Impl rule__NetworkStructure__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6315:2: rule__NetworkStructure__Group__0__Impl rule__NetworkStructure__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__0__Impl_in_rule__NetworkStructure__Group__012810);
+            rule__NetworkStructure__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__1_in_rule__NetworkStructure__Group__012813);
+            rule__NetworkStructure__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__0"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6322:1: rule__NetworkStructure__Group__0__Impl : ( () ) ;
+    public final void rule__NetworkStructure__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6326:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6327:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6327:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6328:1: ()
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6329:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6331:1: 
+            {
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getNetworkStructureAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6341:1: rule__NetworkStructure__Group__1 : rule__NetworkStructure__Group__1__Impl rule__NetworkStructure__Group__2 ;
+    public final void rule__NetworkStructure__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6345:1: ( rule__NetworkStructure__Group__1__Impl rule__NetworkStructure__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6346:2: rule__NetworkStructure__Group__1__Impl rule__NetworkStructure__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__1__Impl_in_rule__NetworkStructure__Group__112871);
+            rule__NetworkStructure__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__2_in_rule__NetworkStructure__Group__112874);
+            rule__NetworkStructure__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__1"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6353:1: rule__NetworkStructure__Group__1__Impl : ( 'NetworkStructure' ) ;
+    public final void rule__NetworkStructure__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6357:1: ( ( 'NetworkStructure' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6358:1: ( 'NetworkStructure' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6358:1: ( 'NetworkStructure' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6359:1: 'NetworkStructure'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); 
+            match(input,56,FollowSets000.FOLLOW_56_in_rule__NetworkStructure__Group__1__Impl12902); 
+             after(grammarAccess.getNetworkStructureAccess().getNetworkStructureKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6372:1: rule__NetworkStructure__Group__2 : rule__NetworkStructure__Group__2__Impl rule__NetworkStructure__Group__3 ;
+    public final void rule__NetworkStructure__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6376:1: ( rule__NetworkStructure__Group__2__Impl rule__NetworkStructure__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6377:2: rule__NetworkStructure__Group__2__Impl rule__NetworkStructure__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__2__Impl_in_rule__NetworkStructure__Group__212933);
+            rule__NetworkStructure__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__3_in_rule__NetworkStructure__Group__212936);
+            rule__NetworkStructure__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__2"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6384:1: rule__NetworkStructure__Group__2__Impl : ( '{' ) ;
+    public final void rule__NetworkStructure__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6388:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6389:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6389:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6390:1: '{'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkStructure__Group__2__Impl12964); 
+             after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6403:1: rule__NetworkStructure__Group__3 : rule__NetworkStructure__Group__3__Impl rule__NetworkStructure__Group__4 ;
+    public final void rule__NetworkStructure__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6407:1: ( rule__NetworkStructure__Group__3__Impl rule__NetworkStructure__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6408:2: rule__NetworkStructure__Group__3__Impl rule__NetworkStructure__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__3__Impl_in_rule__NetworkStructure__Group__312995);
+            rule__NetworkStructure__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__4_in_rule__NetworkStructure__Group__312998);
+            rule__NetworkStructure__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__3"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6415:1: rule__NetworkStructure__Group__3__Impl : ( ( rule__NetworkStructure__Group_3__0 )? ) ;
+    public final void rule__NetworkStructure__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6419:1: ( ( ( rule__NetworkStructure__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6420:1: ( ( rule__NetworkStructure__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6420:1: ( ( rule__NetworkStructure__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6421:1: ( rule__NetworkStructure__Group_3__0 )?
+            {
+             before(grammarAccess.getNetworkStructureAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6422:1: ( rule__NetworkStructure__Group_3__0 )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( (LA27_0==57) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6422:2: rule__NetworkStructure__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__0_in_rule__NetworkStructure__Group__3__Impl13025);
+                    rule__NetworkStructure__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6432:1: rule__NetworkStructure__Group__4 : rule__NetworkStructure__Group__4__Impl rule__NetworkStructure__Group__5 ;
+    public final void rule__NetworkStructure__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6436:1: ( rule__NetworkStructure__Group__4__Impl rule__NetworkStructure__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6437:2: rule__NetworkStructure__Group__4__Impl rule__NetworkStructure__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__4__Impl_in_rule__NetworkStructure__Group__413056);
+            rule__NetworkStructure__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__5_in_rule__NetworkStructure__Group__413059);
+            rule__NetworkStructure__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__4"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6444:1: rule__NetworkStructure__Group__4__Impl : ( ( rule__NetworkStructure__Group_4__0 )? ) ;
+    public final void rule__NetworkStructure__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6448:1: ( ( ( rule__NetworkStructure__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6449:1: ( ( rule__NetworkStructure__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6449:1: ( ( rule__NetworkStructure__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6450:1: ( rule__NetworkStructure__Group_4__0 )?
+            {
+             before(grammarAccess.getNetworkStructureAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6451:1: ( rule__NetworkStructure__Group_4__0 )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==58) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6451:2: rule__NetworkStructure__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__0_in_rule__NetworkStructure__Group__4__Impl13086);
+                    rule__NetworkStructure__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6461:1: rule__NetworkStructure__Group__5 : rule__NetworkStructure__Group__5__Impl ;
+    public final void rule__NetworkStructure__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6465:1: ( rule__NetworkStructure__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6466:2: rule__NetworkStructure__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group__5__Impl_in_rule__NetworkStructure__Group__513117);
+            rule__NetworkStructure__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__5"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6472:1: rule__NetworkStructure__Group__5__Impl : ( '}' ) ;
+    public final void rule__NetworkStructure__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6476:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6477:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6477:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6478:1: '}'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkStructure__Group__5__Impl13145); 
+             after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6503:1: rule__NetworkStructure__Group_3__0 : rule__NetworkStructure__Group_3__0__Impl rule__NetworkStructure__Group_3__1 ;
+    public final void rule__NetworkStructure__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6507:1: ( rule__NetworkStructure__Group_3__0__Impl rule__NetworkStructure__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6508:2: rule__NetworkStructure__Group_3__0__Impl rule__NetworkStructure__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__0__Impl_in_rule__NetworkStructure__Group_3__013188);
+            rule__NetworkStructure__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__1_in_rule__NetworkStructure__Group_3__013191);
+            rule__NetworkStructure__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__0"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6515:1: rule__NetworkStructure__Group_3__0__Impl : ( 'nodes' ) ;
+    public final void rule__NetworkStructure__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6519:1: ( ( 'nodes' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6520:1: ( 'nodes' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6520:1: ( 'nodes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6521:1: 'nodes'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); 
+            match(input,57,FollowSets000.FOLLOW_57_in_rule__NetworkStructure__Group_3__0__Impl13219); 
+             after(grammarAccess.getNetworkStructureAccess().getNodesKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6534:1: rule__NetworkStructure__Group_3__1 : rule__NetworkStructure__Group_3__1__Impl rule__NetworkStructure__Group_3__2 ;
+    public final void rule__NetworkStructure__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6538:1: ( rule__NetworkStructure__Group_3__1__Impl rule__NetworkStructure__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6539:2: rule__NetworkStructure__Group_3__1__Impl rule__NetworkStructure__Group_3__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__1__Impl_in_rule__NetworkStructure__Group_3__113250);
+            rule__NetworkStructure__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__2_in_rule__NetworkStructure__Group_3__113253);
+            rule__NetworkStructure__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__1"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6546:1: rule__NetworkStructure__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__NetworkStructure__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6550:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6551:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6551:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6552:1: '{'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkStructure__Group_3__1__Impl13281); 
+             after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6565:1: rule__NetworkStructure__Group_3__2 : rule__NetworkStructure__Group_3__2__Impl rule__NetworkStructure__Group_3__3 ;
+    public final void rule__NetworkStructure__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6569:1: ( rule__NetworkStructure__Group_3__2__Impl rule__NetworkStructure__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6570:2: rule__NetworkStructure__Group_3__2__Impl rule__NetworkStructure__Group_3__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__2__Impl_in_rule__NetworkStructure__Group_3__213312);
+            rule__NetworkStructure__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__3_in_rule__NetworkStructure__Group_3__213315);
+            rule__NetworkStructure__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__2"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6577:1: rule__NetworkStructure__Group_3__2__Impl : ( ( rule__NetworkStructure__NodesAssignment_3_2 ) ) ;
+    public final void rule__NetworkStructure__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6581:1: ( ( ( rule__NetworkStructure__NodesAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6582:1: ( ( rule__NetworkStructure__NodesAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6582:1: ( ( rule__NetworkStructure__NodesAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6583:1: ( rule__NetworkStructure__NodesAssignment_3_2 )
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6584:1: ( rule__NetworkStructure__NodesAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6584:2: rule__NetworkStructure__NodesAssignment_3_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__NodesAssignment_3_2_in_rule__NetworkStructure__Group_3__2__Impl13342);
+            rule__NetworkStructure__NodesAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6594:1: rule__NetworkStructure__Group_3__3 : rule__NetworkStructure__Group_3__3__Impl rule__NetworkStructure__Group_3__4 ;
+    public final void rule__NetworkStructure__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6598:1: ( rule__NetworkStructure__Group_3__3__Impl rule__NetworkStructure__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6599:2: rule__NetworkStructure__Group_3__3__Impl rule__NetworkStructure__Group_3__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__3__Impl_in_rule__NetworkStructure__Group_3__313372);
+            rule__NetworkStructure__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__4_in_rule__NetworkStructure__Group_3__313375);
+            rule__NetworkStructure__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__3"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6606:1: rule__NetworkStructure__Group_3__3__Impl : ( ( rule__NetworkStructure__Group_3_3__0 )* ) ;
+    public final void rule__NetworkStructure__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6610:1: ( ( ( rule__NetworkStructure__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6611:1: ( ( rule__NetworkStructure__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6611:1: ( ( rule__NetworkStructure__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6612:1: ( rule__NetworkStructure__Group_3_3__0 )*
+            {
+             before(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6613:1: ( rule__NetworkStructure__Group_3_3__0 )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
+
+                if ( (LA29_0==31) ) {
+                    alt29=1;
+                }
+
+
+                switch (alt29) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6613:2: rule__NetworkStructure__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3_3__0_in_rule__NetworkStructure__Group_3__3__Impl13402);
+            	    rule__NetworkStructure__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop29;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkStructureAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6623:1: rule__NetworkStructure__Group_3__4 : rule__NetworkStructure__Group_3__4__Impl ;
+    public final void rule__NetworkStructure__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6627:1: ( rule__NetworkStructure__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6628:2: rule__NetworkStructure__Group_3__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3__4__Impl_in_rule__NetworkStructure__Group_3__413433);
+            rule__NetworkStructure__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__4"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6634:1: rule__NetworkStructure__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__NetworkStructure__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6638:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6639:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6639:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6640:1: '}'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkStructure__Group_3__4__Impl13461); 
+             after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6663:1: rule__NetworkStructure__Group_3_3__0 : rule__NetworkStructure__Group_3_3__0__Impl rule__NetworkStructure__Group_3_3__1 ;
+    public final void rule__NetworkStructure__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6667:1: ( rule__NetworkStructure__Group_3_3__0__Impl rule__NetworkStructure__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6668:2: rule__NetworkStructure__Group_3_3__0__Impl rule__NetworkStructure__Group_3_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3_3__0__Impl_in_rule__NetworkStructure__Group_3_3__013502);
+            rule__NetworkStructure__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3_3__1_in_rule__NetworkStructure__Group_3_3__013505);
+            rule__NetworkStructure__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3_3__0"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6675:1: rule__NetworkStructure__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkStructure__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6679:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6680:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6680:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6681:1: ','
+            {
+             before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__NetworkStructure__Group_3_3__0__Impl13533); 
+             after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6694:1: rule__NetworkStructure__Group_3_3__1 : rule__NetworkStructure__Group_3_3__1__Impl ;
+    public final void rule__NetworkStructure__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6698:1: ( rule__NetworkStructure__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6699:2: rule__NetworkStructure__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_3_3__1__Impl_in_rule__NetworkStructure__Group_3_3__113564);
+            rule__NetworkStructure__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3_3__1"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6705:1: rule__NetworkStructure__Group_3_3__1__Impl : ( ( rule__NetworkStructure__NodesAssignment_3_3_1 ) ) ;
+    public final void rule__NetworkStructure__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6709:1: ( ( ( rule__NetworkStructure__NodesAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6710:1: ( ( rule__NetworkStructure__NodesAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6710:1: ( ( rule__NetworkStructure__NodesAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6711:1: ( rule__NetworkStructure__NodesAssignment_3_3_1 )
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6712:1: ( rule__NetworkStructure__NodesAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6712:2: rule__NetworkStructure__NodesAssignment_3_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__NodesAssignment_3_3_1_in_rule__NetworkStructure__Group_3_3__1__Impl13591);
+            rule__NetworkStructure__NodesAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getNodesAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6726:1: rule__NetworkStructure__Group_4__0 : rule__NetworkStructure__Group_4__0__Impl rule__NetworkStructure__Group_4__1 ;
+    public final void rule__NetworkStructure__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6730:1: ( rule__NetworkStructure__Group_4__0__Impl rule__NetworkStructure__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6731:2: rule__NetworkStructure__Group_4__0__Impl rule__NetworkStructure__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__0__Impl_in_rule__NetworkStructure__Group_4__013625);
+            rule__NetworkStructure__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__1_in_rule__NetworkStructure__Group_4__013628);
+            rule__NetworkStructure__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__0"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6738:1: rule__NetworkStructure__Group_4__0__Impl : ( 'links' ) ;
+    public final void rule__NetworkStructure__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6742:1: ( ( 'links' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6743:1: ( 'links' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6743:1: ( 'links' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6744:1: 'links'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); 
+            match(input,58,FollowSets000.FOLLOW_58_in_rule__NetworkStructure__Group_4__0__Impl13656); 
+             after(grammarAccess.getNetworkStructureAccess().getLinksKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6757:1: rule__NetworkStructure__Group_4__1 : rule__NetworkStructure__Group_4__1__Impl rule__NetworkStructure__Group_4__2 ;
+    public final void rule__NetworkStructure__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6761:1: ( rule__NetworkStructure__Group_4__1__Impl rule__NetworkStructure__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6762:2: rule__NetworkStructure__Group_4__1__Impl rule__NetworkStructure__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__1__Impl_in_rule__NetworkStructure__Group_4__113687);
+            rule__NetworkStructure__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__2_in_rule__NetworkStructure__Group_4__113690);
+            rule__NetworkStructure__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__1"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6769:1: rule__NetworkStructure__Group_4__1__Impl : ( '{' ) ;
+    public final void rule__NetworkStructure__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6773:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6774:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6774:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6775:1: '{'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkStructure__Group_4__1__Impl13718); 
+             after(grammarAccess.getNetworkStructureAccess().getLeftCurlyBracketKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6788:1: rule__NetworkStructure__Group_4__2 : rule__NetworkStructure__Group_4__2__Impl rule__NetworkStructure__Group_4__3 ;
+    public final void rule__NetworkStructure__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6792:1: ( rule__NetworkStructure__Group_4__2__Impl rule__NetworkStructure__Group_4__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6793:2: rule__NetworkStructure__Group_4__2__Impl rule__NetworkStructure__Group_4__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__2__Impl_in_rule__NetworkStructure__Group_4__213749);
+            rule__NetworkStructure__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__3_in_rule__NetworkStructure__Group_4__213752);
+            rule__NetworkStructure__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__2"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6800:1: rule__NetworkStructure__Group_4__2__Impl : ( ( rule__NetworkStructure__LinksAssignment_4_2 ) ) ;
+    public final void rule__NetworkStructure__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6804:1: ( ( ( rule__NetworkStructure__LinksAssignment_4_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6805:1: ( ( rule__NetworkStructure__LinksAssignment_4_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6805:1: ( ( rule__NetworkStructure__LinksAssignment_4_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6806:1: ( rule__NetworkStructure__LinksAssignment_4_2 )
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6807:1: ( rule__NetworkStructure__LinksAssignment_4_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6807:2: rule__NetworkStructure__LinksAssignment_4_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__LinksAssignment_4_2_in_rule__NetworkStructure__Group_4__2__Impl13779);
+            rule__NetworkStructure__LinksAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6817:1: rule__NetworkStructure__Group_4__3 : rule__NetworkStructure__Group_4__3__Impl rule__NetworkStructure__Group_4__4 ;
+    public final void rule__NetworkStructure__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6821:1: ( rule__NetworkStructure__Group_4__3__Impl rule__NetworkStructure__Group_4__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6822:2: rule__NetworkStructure__Group_4__3__Impl rule__NetworkStructure__Group_4__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__3__Impl_in_rule__NetworkStructure__Group_4__313809);
+            rule__NetworkStructure__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__4_in_rule__NetworkStructure__Group_4__313812);
+            rule__NetworkStructure__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__3"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6829:1: rule__NetworkStructure__Group_4__3__Impl : ( ( rule__NetworkStructure__Group_4_3__0 )* ) ;
+    public final void rule__NetworkStructure__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6833:1: ( ( ( rule__NetworkStructure__Group_4_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6834:1: ( ( rule__NetworkStructure__Group_4_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6834:1: ( ( rule__NetworkStructure__Group_4_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6835:1: ( rule__NetworkStructure__Group_4_3__0 )*
+            {
+             before(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6836:1: ( rule__NetworkStructure__Group_4_3__0 )*
+            loop30:
+            do {
+                int alt30=2;
+                int LA30_0 = input.LA(1);
+
+                if ( (LA30_0==31) ) {
+                    alt30=1;
+                }
+
+
+                switch (alt30) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6836:2: rule__NetworkStructure__Group_4_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4_3__0_in_rule__NetworkStructure__Group_4__3__Impl13839);
+            	    rule__NetworkStructure__Group_4_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop30;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkStructureAccess().getGroup_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6846:1: rule__NetworkStructure__Group_4__4 : rule__NetworkStructure__Group_4__4__Impl ;
+    public final void rule__NetworkStructure__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6850:1: ( rule__NetworkStructure__Group_4__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6851:2: rule__NetworkStructure__Group_4__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4__4__Impl_in_rule__NetworkStructure__Group_4__413870);
+            rule__NetworkStructure__Group_4__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__4"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6857:1: rule__NetworkStructure__Group_4__4__Impl : ( '}' ) ;
+    public final void rule__NetworkStructure__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6861:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6862:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6862:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6863:1: '}'
+            {
+             before(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkStructure__Group_4__4__Impl13898); 
+             after(grammarAccess.getNetworkStructureAccess().getRightCurlyBracketKeyword_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6886:1: rule__NetworkStructure__Group_4_3__0 : rule__NetworkStructure__Group_4_3__0__Impl rule__NetworkStructure__Group_4_3__1 ;
+    public final void rule__NetworkStructure__Group_4_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6890:1: ( rule__NetworkStructure__Group_4_3__0__Impl rule__NetworkStructure__Group_4_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6891:2: rule__NetworkStructure__Group_4_3__0__Impl rule__NetworkStructure__Group_4_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4_3__0__Impl_in_rule__NetworkStructure__Group_4_3__013939);
+            rule__NetworkStructure__Group_4_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4_3__1_in_rule__NetworkStructure__Group_4_3__013942);
+            rule__NetworkStructure__Group_4_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4_3__0"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6898:1: rule__NetworkStructure__Group_4_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkStructure__Group_4_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6902:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6903:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6903:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6904:1: ','
+            {
+             before(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__NetworkStructure__Group_4_3__0__Impl13970); 
+             after(grammarAccess.getNetworkStructureAccess().getCommaKeyword_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6917:1: rule__NetworkStructure__Group_4_3__1 : rule__NetworkStructure__Group_4_3__1__Impl ;
+    public final void rule__NetworkStructure__Group_4_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6921:1: ( rule__NetworkStructure__Group_4_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6922:2: rule__NetworkStructure__Group_4_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__Group_4_3__1__Impl_in_rule__NetworkStructure__Group_4_3__114001);
+            rule__NetworkStructure__Group_4_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4_3__1"
+
+
+    // $ANTLR start "rule__NetworkStructure__Group_4_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6928:1: rule__NetworkStructure__Group_4_3__1__Impl : ( ( rule__NetworkStructure__LinksAssignment_4_3_1 ) ) ;
+    public final void rule__NetworkStructure__Group_4_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6932:1: ( ( ( rule__NetworkStructure__LinksAssignment_4_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6933:1: ( ( rule__NetworkStructure__LinksAssignment_4_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6933:1: ( ( rule__NetworkStructure__LinksAssignment_4_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6934:1: ( rule__NetworkStructure__LinksAssignment_4_3_1 )
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6935:1: ( rule__NetworkStructure__LinksAssignment_4_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6935:2: rule__NetworkStructure__LinksAssignment_4_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkStructure__LinksAssignment_4_3_1_in_rule__NetworkStructure__Group_4_3__1__Impl14028);
+            rule__NetworkStructure__LinksAssignment_4_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkStructureAccess().getLinksAssignment_4_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__Group_4_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6949:1: rule__NetworkConfiguration__Group__0 : rule__NetworkConfiguration__Group__0__Impl rule__NetworkConfiguration__Group__1 ;
+    public final void rule__NetworkConfiguration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6953:1: ( rule__NetworkConfiguration__Group__0__Impl rule__NetworkConfiguration__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6954:2: rule__NetworkConfiguration__Group__0__Impl rule__NetworkConfiguration__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__0__Impl_in_rule__NetworkConfiguration__Group__014062);
+            rule__NetworkConfiguration__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__1_in_rule__NetworkConfiguration__Group__014065);
+            rule__NetworkConfiguration__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__0"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6961:1: rule__NetworkConfiguration__Group__0__Impl : ( 'NetworkConfiguration' ) ;
+    public final void rule__NetworkConfiguration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6965:1: ( ( 'NetworkConfiguration' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6966:1: ( 'NetworkConfiguration' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6966:1: ( 'NetworkConfiguration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6967:1: 'NetworkConfiguration'
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); 
+            match(input,59,FollowSets000.FOLLOW_59_in_rule__NetworkConfiguration__Group__0__Impl14093); 
+             after(grammarAccess.getNetworkConfigurationAccess().getNetworkConfigurationKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6980:1: rule__NetworkConfiguration__Group__1 : rule__NetworkConfiguration__Group__1__Impl rule__NetworkConfiguration__Group__2 ;
+    public final void rule__NetworkConfiguration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6984:1: ( rule__NetworkConfiguration__Group__1__Impl rule__NetworkConfiguration__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6985:2: rule__NetworkConfiguration__Group__1__Impl rule__NetworkConfiguration__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__1__Impl_in_rule__NetworkConfiguration__Group__114124);
+            rule__NetworkConfiguration__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__2_in_rule__NetworkConfiguration__Group__114127);
+            rule__NetworkConfiguration__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__1"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6992:1: rule__NetworkConfiguration__Group__1__Impl : ( '{' ) ;
+    public final void rule__NetworkConfiguration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6996:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6997:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6997:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:6998:1: '{'
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkConfiguration__Group__1__Impl14155); 
+             after(grammarAccess.getNetworkConfigurationAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7011:1: rule__NetworkConfiguration__Group__2 : rule__NetworkConfiguration__Group__2__Impl rule__NetworkConfiguration__Group__3 ;
+    public final void rule__NetworkConfiguration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7015:1: ( rule__NetworkConfiguration__Group__2__Impl rule__NetworkConfiguration__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7016:2: rule__NetworkConfiguration__Group__2__Impl rule__NetworkConfiguration__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__2__Impl_in_rule__NetworkConfiguration__Group__214186);
+            rule__NetworkConfiguration__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__3_in_rule__NetworkConfiguration__Group__214189);
+            rule__NetworkConfiguration__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__2"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7023:1: rule__NetworkConfiguration__Group__2__Impl : ( 'protocolsAndStacks' ) ;
+    public final void rule__NetworkConfiguration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7027:1: ( ( 'protocolsAndStacks' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7028:1: ( 'protocolsAndStacks' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7028:1: ( 'protocolsAndStacks' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7029:1: 'protocolsAndStacks'
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); 
+            match(input,60,FollowSets000.FOLLOW_60_in_rule__NetworkConfiguration__Group__2__Impl14217); 
+             after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7042:1: rule__NetworkConfiguration__Group__3 : rule__NetworkConfiguration__Group__3__Impl rule__NetworkConfiguration__Group__4 ;
+    public final void rule__NetworkConfiguration__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7046:1: ( rule__NetworkConfiguration__Group__3__Impl rule__NetworkConfiguration__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7047:2: rule__NetworkConfiguration__Group__3__Impl rule__NetworkConfiguration__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__3__Impl_in_rule__NetworkConfiguration__Group__314248);
+            rule__NetworkConfiguration__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__4_in_rule__NetworkConfiguration__Group__314251);
+            rule__NetworkConfiguration__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__3"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7054:1: rule__NetworkConfiguration__Group__3__Impl : ( ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 ) ) ;
+    public final void rule__NetworkConfiguration__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7058:1: ( ( ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7059:1: ( ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7059:1: ( ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7060:1: ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 )
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7061:1: ( rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7061:2: rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3_in_rule__NetworkConfiguration__Group__3__Impl14278);
+            rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7071:1: rule__NetworkConfiguration__Group__4 : rule__NetworkConfiguration__Group__4__Impl rule__NetworkConfiguration__Group__5 ;
+    public final void rule__NetworkConfiguration__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7075:1: ( rule__NetworkConfiguration__Group__4__Impl rule__NetworkConfiguration__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7076:2: rule__NetworkConfiguration__Group__4__Impl rule__NetworkConfiguration__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__4__Impl_in_rule__NetworkConfiguration__Group__414308);
+            rule__NetworkConfiguration__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__5_in_rule__NetworkConfiguration__Group__414311);
+            rule__NetworkConfiguration__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__4"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7083:1: rule__NetworkConfiguration__Group__4__Impl : ( 'routes' ) ;
+    public final void rule__NetworkConfiguration__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7087:1: ( ( 'routes' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7088:1: ( 'routes' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7088:1: ( 'routes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7089:1: 'routes'
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); 
+            match(input,61,FollowSets000.FOLLOW_61_in_rule__NetworkConfiguration__Group__4__Impl14339); 
+             after(grammarAccess.getNetworkConfigurationAccess().getRoutesKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7102:1: rule__NetworkConfiguration__Group__5 : rule__NetworkConfiguration__Group__5__Impl rule__NetworkConfiguration__Group__6 ;
+    public final void rule__NetworkConfiguration__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7106:1: ( rule__NetworkConfiguration__Group__5__Impl rule__NetworkConfiguration__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7107:2: rule__NetworkConfiguration__Group__5__Impl rule__NetworkConfiguration__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__5__Impl_in_rule__NetworkConfiguration__Group__514370);
+            rule__NetworkConfiguration__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__6_in_rule__NetworkConfiguration__Group__514373);
+            rule__NetworkConfiguration__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__5"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7114:1: rule__NetworkConfiguration__Group__5__Impl : ( ( rule__NetworkConfiguration__RoutesAssignment_5 ) ) ;
+    public final void rule__NetworkConfiguration__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7118:1: ( ( ( rule__NetworkConfiguration__RoutesAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7119:1: ( ( rule__NetworkConfiguration__RoutesAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7119:1: ( ( rule__NetworkConfiguration__RoutesAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7120:1: ( rule__NetworkConfiguration__RoutesAssignment_5 )
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7121:1: ( rule__NetworkConfiguration__RoutesAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7121:2: rule__NetworkConfiguration__RoutesAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__RoutesAssignment_5_in_rule__NetworkConfiguration__Group__5__Impl14400);
+            rule__NetworkConfiguration__RoutesAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkConfigurationAccess().getRoutesAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7131:1: rule__NetworkConfiguration__Group__6 : rule__NetworkConfiguration__Group__6__Impl ;
+    public final void rule__NetworkConfiguration__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7135:1: ( rule__NetworkConfiguration__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7136:2: rule__NetworkConfiguration__Group__6__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkConfiguration__Group__6__Impl_in_rule__NetworkConfiguration__Group__614430);
+            rule__NetworkConfiguration__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__6"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7142:1: rule__NetworkConfiguration__Group__6__Impl : ( '}' ) ;
+    public final void rule__NetworkConfiguration__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7146:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7147:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7147:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7148:1: '}'
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkConfiguration__Group__6__Impl14458); 
+             after(grammarAccess.getNetworkConfigurationAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7175:1: rule__ExperimentParam__Group__0 : rule__ExperimentParam__Group__0__Impl rule__ExperimentParam__Group__1 ;
+    public final void rule__ExperimentParam__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7179:1: ( rule__ExperimentParam__Group__0__Impl rule__ExperimentParam__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7180:2: rule__ExperimentParam__Group__0__Impl rule__ExperimentParam__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__0__Impl_in_rule__ExperimentParam__Group__014503);
+            rule__ExperimentParam__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__1_in_rule__ExperimentParam__Group__014506);
+            rule__ExperimentParam__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__0"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7187:1: rule__ExperimentParam__Group__0__Impl : ( 'ExperimentParam' ) ;
+    public final void rule__ExperimentParam__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7191:1: ( ( 'ExperimentParam' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7192:1: ( 'ExperimentParam' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7192:1: ( 'ExperimentParam' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7193:1: 'ExperimentParam'
+            {
+             before(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); 
+            match(input,62,FollowSets000.FOLLOW_62_in_rule__ExperimentParam__Group__0__Impl14534); 
+             after(grammarAccess.getExperimentParamAccess().getExperimentParamKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7206:1: rule__ExperimentParam__Group__1 : rule__ExperimentParam__Group__1__Impl rule__ExperimentParam__Group__2 ;
+    public final void rule__ExperimentParam__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7210:1: ( rule__ExperimentParam__Group__1__Impl rule__ExperimentParam__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7211:2: rule__ExperimentParam__Group__1__Impl rule__ExperimentParam__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__1__Impl_in_rule__ExperimentParam__Group__114565);
+            rule__ExperimentParam__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__2_in_rule__ExperimentParam__Group__114568);
+            rule__ExperimentParam__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__1"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7218:1: rule__ExperimentParam__Group__1__Impl : ( ( rule__ExperimentParam__NameAssignment_1 ) ) ;
+    public final void rule__ExperimentParam__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7222:1: ( ( ( rule__ExperimentParam__NameAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7223:1: ( ( rule__ExperimentParam__NameAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7223:1: ( ( rule__ExperimentParam__NameAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7224:1: ( rule__ExperimentParam__NameAssignment_1 )
+            {
+             before(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7225:1: ( rule__ExperimentParam__NameAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7225:2: rule__ExperimentParam__NameAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__NameAssignment_1_in_rule__ExperimentParam__Group__1__Impl14595);
+            rule__ExperimentParam__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExperimentParamAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7235:1: rule__ExperimentParam__Group__2 : rule__ExperimentParam__Group__2__Impl rule__ExperimentParam__Group__3 ;
+    public final void rule__ExperimentParam__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7239:1: ( rule__ExperimentParam__Group__2__Impl rule__ExperimentParam__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7240:2: rule__ExperimentParam__Group__2__Impl rule__ExperimentParam__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__2__Impl_in_rule__ExperimentParam__Group__214625);
+            rule__ExperimentParam__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__3_in_rule__ExperimentParam__Group__214628);
+            rule__ExperimentParam__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__2"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7247:1: rule__ExperimentParam__Group__2__Impl : ( '{' ) ;
+    public final void rule__ExperimentParam__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7251:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7252:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7252:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7253:1: '{'
+            {
+             before(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__ExperimentParam__Group__2__Impl14656); 
+             after(grammarAccess.getExperimentParamAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7266:1: rule__ExperimentParam__Group__3 : rule__ExperimentParam__Group__3__Impl rule__ExperimentParam__Group__4 ;
+    public final void rule__ExperimentParam__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7270:1: ( rule__ExperimentParam__Group__3__Impl rule__ExperimentParam__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7271:2: rule__ExperimentParam__Group__3__Impl rule__ExperimentParam__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__3__Impl_in_rule__ExperimentParam__Group__314687);
+            rule__ExperimentParam__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__4_in_rule__ExperimentParam__Group__314690);
+            rule__ExperimentParam__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__3"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7278:1: rule__ExperimentParam__Group__3__Impl : ( 'value' ) ;
+    public final void rule__ExperimentParam__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7282:1: ( ( 'value' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7283:1: ( 'value' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7283:1: ( 'value' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7284:1: 'value'
+            {
+             before(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); 
+            match(input,63,FollowSets000.FOLLOW_63_in_rule__ExperimentParam__Group__3__Impl14718); 
+             after(grammarAccess.getExperimentParamAccess().getValueKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7297:1: rule__ExperimentParam__Group__4 : rule__ExperimentParam__Group__4__Impl rule__ExperimentParam__Group__5 ;
+    public final void rule__ExperimentParam__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7301:1: ( rule__ExperimentParam__Group__4__Impl rule__ExperimentParam__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7302:2: rule__ExperimentParam__Group__4__Impl rule__ExperimentParam__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__4__Impl_in_rule__ExperimentParam__Group__414749);
+            rule__ExperimentParam__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__5_in_rule__ExperimentParam__Group__414752);
+            rule__ExperimentParam__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__4"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7309:1: rule__ExperimentParam__Group__4__Impl : ( ( rule__ExperimentParam__ValueAssignment_4 ) ) ;
+    public final void rule__ExperimentParam__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7313:1: ( ( ( rule__ExperimentParam__ValueAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7314:1: ( ( rule__ExperimentParam__ValueAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7314:1: ( ( rule__ExperimentParam__ValueAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7315:1: ( rule__ExperimentParam__ValueAssignment_4 )
+            {
+             before(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7316:1: ( rule__ExperimentParam__ValueAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7316:2: rule__ExperimentParam__ValueAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__ValueAssignment_4_in_rule__ExperimentParam__Group__4__Impl14779);
+            rule__ExperimentParam__ValueAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExperimentParamAccess().getValueAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7326:1: rule__ExperimentParam__Group__5 : rule__ExperimentParam__Group__5__Impl ;
+    public final void rule__ExperimentParam__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7330:1: ( rule__ExperimentParam__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7331:2: rule__ExperimentParam__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ExperimentParam__Group__5__Impl_in_rule__ExperimentParam__Group__514809);
+            rule__ExperimentParam__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__5"
+
+
+    // $ANTLR start "rule__ExperimentParam__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7337:1: rule__ExperimentParam__Group__5__Impl : ( '}' ) ;
+    public final void rule__ExperimentParam__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7341:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7342:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7342:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7343:1: '}'
+            {
+             before(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__ExperimentParam__Group__5__Impl14837); 
+             after(grammarAccess.getExperimentParamAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7368:1: rule__SoftwareComponent__Group__0 : rule__SoftwareComponent__Group__0__Impl rule__SoftwareComponent__Group__1 ;
+    public final void rule__SoftwareComponent__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7372:1: ( rule__SoftwareComponent__Group__0__Impl rule__SoftwareComponent__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7373:2: rule__SoftwareComponent__Group__0__Impl rule__SoftwareComponent__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__0__Impl_in_rule__SoftwareComponent__Group__014880);
+            rule__SoftwareComponent__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__1_in_rule__SoftwareComponent__Group__014883);
+            rule__SoftwareComponent__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__0"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7380:1: rule__SoftwareComponent__Group__0__Impl : ( 'SoftwareComponent' ) ;
+    public final void rule__SoftwareComponent__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7384:1: ( ( 'SoftwareComponent' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7385:1: ( 'SoftwareComponent' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7385:1: ( 'SoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7386:1: 'SoftwareComponent'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); 
+            match(input,64,FollowSets000.FOLLOW_64_in_rule__SoftwareComponent__Group__0__Impl14911); 
+             after(grammarAccess.getSoftwareComponentAccess().getSoftwareComponentKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7399:1: rule__SoftwareComponent__Group__1 : rule__SoftwareComponent__Group__1__Impl rule__SoftwareComponent__Group__2 ;
+    public final void rule__SoftwareComponent__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7403:1: ( rule__SoftwareComponent__Group__1__Impl rule__SoftwareComponent__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7404:2: rule__SoftwareComponent__Group__1__Impl rule__SoftwareComponent__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__1__Impl_in_rule__SoftwareComponent__Group__114942);
+            rule__SoftwareComponent__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__2_in_rule__SoftwareComponent__Group__114945);
+            rule__SoftwareComponent__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7411:1: rule__SoftwareComponent__Group__1__Impl : ( ( rule__SoftwareComponent__IdAssignment_1 ) ) ;
+    public final void rule__SoftwareComponent__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7415:1: ( ( ( rule__SoftwareComponent__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7416:1: ( ( rule__SoftwareComponent__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7416:1: ( ( rule__SoftwareComponent__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7417:1: ( rule__SoftwareComponent__IdAssignment_1 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7418:1: ( rule__SoftwareComponent__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7418:2: rule__SoftwareComponent__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__IdAssignment_1_in_rule__SoftwareComponent__Group__1__Impl14972);
+            rule__SoftwareComponent__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7428:1: rule__SoftwareComponent__Group__2 : rule__SoftwareComponent__Group__2__Impl rule__SoftwareComponent__Group__3 ;
+    public final void rule__SoftwareComponent__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7432:1: ( rule__SoftwareComponent__Group__2__Impl rule__SoftwareComponent__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7433:2: rule__SoftwareComponent__Group__2__Impl rule__SoftwareComponent__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__2__Impl_in_rule__SoftwareComponent__Group__215002);
+            rule__SoftwareComponent__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__3_in_rule__SoftwareComponent__Group__215005);
+            rule__SoftwareComponent__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__2"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7440:1: rule__SoftwareComponent__Group__2__Impl : ( '{' ) ;
+    public final void rule__SoftwareComponent__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7444:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7445:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7445:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7446:1: '{'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__SoftwareComponent__Group__2__Impl15033); 
+             after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7459:1: rule__SoftwareComponent__Group__3 : rule__SoftwareComponent__Group__3__Impl rule__SoftwareComponent__Group__4 ;
+    public final void rule__SoftwareComponent__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7463:1: ( rule__SoftwareComponent__Group__3__Impl rule__SoftwareComponent__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7464:2: rule__SoftwareComponent__Group__3__Impl rule__SoftwareComponent__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__3__Impl_in_rule__SoftwareComponent__Group__315064);
+            rule__SoftwareComponent__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__4_in_rule__SoftwareComponent__Group__315067);
+            rule__SoftwareComponent__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__3"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7471:1: rule__SoftwareComponent__Group__3__Impl : ( 'name' ) ;
+    public final void rule__SoftwareComponent__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7475:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7476:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7476:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7477:1: 'name'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets000.FOLLOW_65_in_rule__SoftwareComponent__Group__3__Impl15095); 
+             after(grammarAccess.getSoftwareComponentAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7490:1: rule__SoftwareComponent__Group__4 : rule__SoftwareComponent__Group__4__Impl rule__SoftwareComponent__Group__5 ;
+    public final void rule__SoftwareComponent__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7494:1: ( rule__SoftwareComponent__Group__4__Impl rule__SoftwareComponent__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7495:2: rule__SoftwareComponent__Group__4__Impl rule__SoftwareComponent__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__4__Impl_in_rule__SoftwareComponent__Group__415126);
+            rule__SoftwareComponent__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__5_in_rule__SoftwareComponent__Group__415129);
+            rule__SoftwareComponent__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__4"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7502:1: rule__SoftwareComponent__Group__4__Impl : ( ( rule__SoftwareComponent__NameAssignment_4 ) ) ;
+    public final void rule__SoftwareComponent__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7506:1: ( ( ( rule__SoftwareComponent__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7507:1: ( ( rule__SoftwareComponent__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7507:1: ( ( rule__SoftwareComponent__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7508:1: ( rule__SoftwareComponent__NameAssignment_4 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7509:1: ( rule__SoftwareComponent__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7509:2: rule__SoftwareComponent__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__NameAssignment_4_in_rule__SoftwareComponent__Group__4__Impl15156);
+            rule__SoftwareComponent__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7519:1: rule__SoftwareComponent__Group__5 : rule__SoftwareComponent__Group__5__Impl rule__SoftwareComponent__Group__6 ;
+    public final void rule__SoftwareComponent__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7523:1: ( rule__SoftwareComponent__Group__5__Impl rule__SoftwareComponent__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7524:2: rule__SoftwareComponent__Group__5__Impl rule__SoftwareComponent__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__5__Impl_in_rule__SoftwareComponent__Group__515186);
+            rule__SoftwareComponent__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__6_in_rule__SoftwareComponent__Group__515189);
+            rule__SoftwareComponent__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__5"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7531:1: rule__SoftwareComponent__Group__5__Impl : ( ( rule__SoftwareComponent__Group_5__0 )? ) ;
+    public final void rule__SoftwareComponent__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7535:1: ( ( ( rule__SoftwareComponent__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7536:1: ( ( rule__SoftwareComponent__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7536:1: ( ( rule__SoftwareComponent__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7537:1: ( rule__SoftwareComponent__Group_5__0 )?
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7538:1: ( rule__SoftwareComponent__Group_5__0 )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==67) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7538:2: rule__SoftwareComponent__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__0_in_rule__SoftwareComponent__Group__5__Impl15216);
+                    rule__SoftwareComponent__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7548:1: rule__SoftwareComponent__Group__6 : rule__SoftwareComponent__Group__6__Impl rule__SoftwareComponent__Group__7 ;
+    public final void rule__SoftwareComponent__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7552:1: ( rule__SoftwareComponent__Group__6__Impl rule__SoftwareComponent__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7553:2: rule__SoftwareComponent__Group__6__Impl rule__SoftwareComponent__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__6__Impl_in_rule__SoftwareComponent__Group__615247);
+            rule__SoftwareComponent__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__7_in_rule__SoftwareComponent__Group__615250);
+            rule__SoftwareComponent__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__6"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7560:1: rule__SoftwareComponent__Group__6__Impl : ( 'deployedOn' ) ;
+    public final void rule__SoftwareComponent__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7564:1: ( ( 'deployedOn' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7565:1: ( 'deployedOn' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7565:1: ( 'deployedOn' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7566:1: 'deployedOn'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); 
+            match(input,66,FollowSets000.FOLLOW_66_in_rule__SoftwareComponent__Group__6__Impl15278); 
+             after(grammarAccess.getSoftwareComponentAccess().getDeployedOnKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7579:1: rule__SoftwareComponent__Group__7 : rule__SoftwareComponent__Group__7__Impl rule__SoftwareComponent__Group__8 ;
+    public final void rule__SoftwareComponent__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7583:1: ( rule__SoftwareComponent__Group__7__Impl rule__SoftwareComponent__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7584:2: rule__SoftwareComponent__Group__7__Impl rule__SoftwareComponent__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__7__Impl_in_rule__SoftwareComponent__Group__715309);
+            rule__SoftwareComponent__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__8_in_rule__SoftwareComponent__Group__715312);
+            rule__SoftwareComponent__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__7"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7591:1: rule__SoftwareComponent__Group__7__Impl : ( ( rule__SoftwareComponent__DeployedOnAssignment_7 ) ) ;
+    public final void rule__SoftwareComponent__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7595:1: ( ( ( rule__SoftwareComponent__DeployedOnAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7596:1: ( ( rule__SoftwareComponent__DeployedOnAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7596:1: ( ( rule__SoftwareComponent__DeployedOnAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7597:1: ( rule__SoftwareComponent__DeployedOnAssignment_7 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7598:1: ( rule__SoftwareComponent__DeployedOnAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7598:2: rule__SoftwareComponent__DeployedOnAssignment_7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__DeployedOnAssignment_7_in_rule__SoftwareComponent__Group__7__Impl15339);
+            rule__SoftwareComponent__DeployedOnAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getDeployedOnAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__7__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7608:1: rule__SoftwareComponent__Group__8 : rule__SoftwareComponent__Group__8__Impl rule__SoftwareComponent__Group__9 ;
+    public final void rule__SoftwareComponent__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7612:1: ( rule__SoftwareComponent__Group__8__Impl rule__SoftwareComponent__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7613:2: rule__SoftwareComponent__Group__8__Impl rule__SoftwareComponent__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__8__Impl_in_rule__SoftwareComponent__Group__815369);
+            rule__SoftwareComponent__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__9_in_rule__SoftwareComponent__Group__815372);
+            rule__SoftwareComponent__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__8"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7620:1: rule__SoftwareComponent__Group__8__Impl : ( ( rule__SoftwareComponent__Group_8__0 )? ) ;
+    public final void rule__SoftwareComponent__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7624:1: ( ( ( rule__SoftwareComponent__Group_8__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7625:1: ( ( rule__SoftwareComponent__Group_8__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7625:1: ( ( rule__SoftwareComponent__Group_8__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7626:1: ( rule__SoftwareComponent__Group_8__0 )?
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7627:1: ( rule__SoftwareComponent__Group_8__0 )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==68) ) {
+                alt32=1;
+            }
+            switch (alt32) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7627:2: rule__SoftwareComponent__Group_8__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__0_in_rule__SoftwareComponent__Group__8__Impl15399);
+                    rule__SoftwareComponent__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__8__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7637:1: rule__SoftwareComponent__Group__9 : rule__SoftwareComponent__Group__9__Impl ;
+    public final void rule__SoftwareComponent__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7641:1: ( rule__SoftwareComponent__Group__9__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7642:2: rule__SoftwareComponent__Group__9__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group__9__Impl_in_rule__SoftwareComponent__Group__915430);
+            rule__SoftwareComponent__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__9"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7648:1: rule__SoftwareComponent__Group__9__Impl : ( '}' ) ;
+    public final void rule__SoftwareComponent__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7652:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7653:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7653:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7654:1: '}'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__SoftwareComponent__Group__9__Impl15458); 
+             after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group__9__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7687:1: rule__SoftwareComponent__Group_5__0 : rule__SoftwareComponent__Group_5__0__Impl rule__SoftwareComponent__Group_5__1 ;
+    public final void rule__SoftwareComponent__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7691:1: ( rule__SoftwareComponent__Group_5__0__Impl rule__SoftwareComponent__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7692:2: rule__SoftwareComponent__Group_5__0__Impl rule__SoftwareComponent__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__0__Impl_in_rule__SoftwareComponent__Group_5__015509);
+            rule__SoftwareComponent__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__1_in_rule__SoftwareComponent__Group_5__015512);
+            rule__SoftwareComponent__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__0"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7699:1: rule__SoftwareComponent__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__SoftwareComponent__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7703:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7704:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7704:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7705:1: 'alternativeNames'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets000.FOLLOW_67_in_rule__SoftwareComponent__Group_5__0__Impl15540); 
+             after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7718:1: rule__SoftwareComponent__Group_5__1 : rule__SoftwareComponent__Group_5__1__Impl rule__SoftwareComponent__Group_5__2 ;
+    public final void rule__SoftwareComponent__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7722:1: ( rule__SoftwareComponent__Group_5__1__Impl rule__SoftwareComponent__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7723:2: rule__SoftwareComponent__Group_5__1__Impl rule__SoftwareComponent__Group_5__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__1__Impl_in_rule__SoftwareComponent__Group_5__115571);
+            rule__SoftwareComponent__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__2_in_rule__SoftwareComponent__Group_5__115574);
+            rule__SoftwareComponent__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7730:1: rule__SoftwareComponent__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__SoftwareComponent__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7734:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7735:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7735:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7736:1: '{'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__SoftwareComponent__Group_5__1__Impl15602); 
+             after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7749:1: rule__SoftwareComponent__Group_5__2 : rule__SoftwareComponent__Group_5__2__Impl rule__SoftwareComponent__Group_5__3 ;
+    public final void rule__SoftwareComponent__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7753:1: ( rule__SoftwareComponent__Group_5__2__Impl rule__SoftwareComponent__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7754:2: rule__SoftwareComponent__Group_5__2__Impl rule__SoftwareComponent__Group_5__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__2__Impl_in_rule__SoftwareComponent__Group_5__215633);
+            rule__SoftwareComponent__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__3_in_rule__SoftwareComponent__Group_5__215636);
+            rule__SoftwareComponent__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__2"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7761:1: rule__SoftwareComponent__Group_5__2__Impl : ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__SoftwareComponent__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7765:1: ( ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7766:1: ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7766:1: ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7767:1: ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7768:1: ( rule__SoftwareComponent__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7768:2: rule__SoftwareComponent__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__AlternativeNamesAssignment_5_2_in_rule__SoftwareComponent__Group_5__2__Impl15663);
+            rule__SoftwareComponent__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7778:1: rule__SoftwareComponent__Group_5__3 : rule__SoftwareComponent__Group_5__3__Impl rule__SoftwareComponent__Group_5__4 ;
+    public final void rule__SoftwareComponent__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7782:1: ( rule__SoftwareComponent__Group_5__3__Impl rule__SoftwareComponent__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7783:2: rule__SoftwareComponent__Group_5__3__Impl rule__SoftwareComponent__Group_5__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__3__Impl_in_rule__SoftwareComponent__Group_5__315693);
+            rule__SoftwareComponent__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__4_in_rule__SoftwareComponent__Group_5__315696);
+            rule__SoftwareComponent__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__3"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7790:1: rule__SoftwareComponent__Group_5__3__Impl : ( ( rule__SoftwareComponent__Group_5_3__0 )* ) ;
+    public final void rule__SoftwareComponent__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7794:1: ( ( ( rule__SoftwareComponent__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7795:1: ( ( rule__SoftwareComponent__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7795:1: ( ( rule__SoftwareComponent__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7796:1: ( rule__SoftwareComponent__Group_5_3__0 )*
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7797:1: ( rule__SoftwareComponent__Group_5_3__0 )*
+            loop33:
+            do {
+                int alt33=2;
+                int LA33_0 = input.LA(1);
+
+                if ( (LA33_0==31) ) {
+                    alt33=1;
+                }
+
+
+                switch (alt33) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7797:2: rule__SoftwareComponent__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5_3__0_in_rule__SoftwareComponent__Group_5__3__Impl15723);
+            	    rule__SoftwareComponent__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop33;
+                }
+            } while (true);
+
+             after(grammarAccess.getSoftwareComponentAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7807:1: rule__SoftwareComponent__Group_5__4 : rule__SoftwareComponent__Group_5__4__Impl ;
+    public final void rule__SoftwareComponent__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7811:1: ( rule__SoftwareComponent__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7812:2: rule__SoftwareComponent__Group_5__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5__4__Impl_in_rule__SoftwareComponent__Group_5__415754);
+            rule__SoftwareComponent__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__4"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7818:1: rule__SoftwareComponent__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__SoftwareComponent__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7822:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7823:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7823:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7824:1: '}'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__SoftwareComponent__Group_5__4__Impl15782); 
+             after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7847:1: rule__SoftwareComponent__Group_5_3__0 : rule__SoftwareComponent__Group_5_3__0__Impl rule__SoftwareComponent__Group_5_3__1 ;
+    public final void rule__SoftwareComponent__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7851:1: ( rule__SoftwareComponent__Group_5_3__0__Impl rule__SoftwareComponent__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7852:2: rule__SoftwareComponent__Group_5_3__0__Impl rule__SoftwareComponent__Group_5_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5_3__0__Impl_in_rule__SoftwareComponent__Group_5_3__015823);
+            rule__SoftwareComponent__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5_3__1_in_rule__SoftwareComponent__Group_5_3__015826);
+            rule__SoftwareComponent__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5_3__0"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7859:1: rule__SoftwareComponent__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__SoftwareComponent__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7863:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7864:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7864:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7865:1: ','
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__SoftwareComponent__Group_5_3__0__Impl15854); 
+             after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7878:1: rule__SoftwareComponent__Group_5_3__1 : rule__SoftwareComponent__Group_5_3__1__Impl ;
+    public final void rule__SoftwareComponent__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7882:1: ( rule__SoftwareComponent__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7883:2: rule__SoftwareComponent__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_5_3__1__Impl_in_rule__SoftwareComponent__Group_5_3__115885);
+            rule__SoftwareComponent__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5_3__1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7889:1: rule__SoftwareComponent__Group_5_3__1__Impl : ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__SoftwareComponent__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7893:1: ( ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7894:1: ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7894:1: ( ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7895:1: ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7896:1: ( rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7896:2: rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1_in_rule__SoftwareComponent__Group_5_3__1__Impl15912);
+            rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7910:1: rule__SoftwareComponent__Group_8__0 : rule__SoftwareComponent__Group_8__0__Impl rule__SoftwareComponent__Group_8__1 ;
+    public final void rule__SoftwareComponent__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7914:1: ( rule__SoftwareComponent__Group_8__0__Impl rule__SoftwareComponent__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7915:2: rule__SoftwareComponent__Group_8__0__Impl rule__SoftwareComponent__Group_8__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__0__Impl_in_rule__SoftwareComponent__Group_8__015946);
+            rule__SoftwareComponent__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__1_in_rule__SoftwareComponent__Group_8__015949);
+            rule__SoftwareComponent__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__0"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7922:1: rule__SoftwareComponent__Group_8__0__Impl : ( 'trafficSources' ) ;
+    public final void rule__SoftwareComponent__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7926:1: ( ( 'trafficSources' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7927:1: ( 'trafficSources' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7927:1: ( 'trafficSources' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7928:1: 'trafficSources'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); 
+            match(input,68,FollowSets000.FOLLOW_68_in_rule__SoftwareComponent__Group_8__0__Impl15977); 
+             after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7941:1: rule__SoftwareComponent__Group_8__1 : rule__SoftwareComponent__Group_8__1__Impl rule__SoftwareComponent__Group_8__2 ;
+    public final void rule__SoftwareComponent__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7945:1: ( rule__SoftwareComponent__Group_8__1__Impl rule__SoftwareComponent__Group_8__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7946:2: rule__SoftwareComponent__Group_8__1__Impl rule__SoftwareComponent__Group_8__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__1__Impl_in_rule__SoftwareComponent__Group_8__116008);
+            rule__SoftwareComponent__Group_8__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__2_in_rule__SoftwareComponent__Group_8__116011);
+            rule__SoftwareComponent__Group_8__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7953:1: rule__SoftwareComponent__Group_8__1__Impl : ( '{' ) ;
+    public final void rule__SoftwareComponent__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7957:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7958:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7958:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7959:1: '{'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__SoftwareComponent__Group_8__1__Impl16039); 
+             after(grammarAccess.getSoftwareComponentAccess().getLeftCurlyBracketKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7972:1: rule__SoftwareComponent__Group_8__2 : rule__SoftwareComponent__Group_8__2__Impl rule__SoftwareComponent__Group_8__3 ;
+    public final void rule__SoftwareComponent__Group_8__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7976:1: ( rule__SoftwareComponent__Group_8__2__Impl rule__SoftwareComponent__Group_8__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7977:2: rule__SoftwareComponent__Group_8__2__Impl rule__SoftwareComponent__Group_8__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__2__Impl_in_rule__SoftwareComponent__Group_8__216070);
+            rule__SoftwareComponent__Group_8__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__3_in_rule__SoftwareComponent__Group_8__216073);
+            rule__SoftwareComponent__Group_8__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__2"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7984:1: rule__SoftwareComponent__Group_8__2__Impl : ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 ) ) ;
+    public final void rule__SoftwareComponent__Group_8__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7988:1: ( ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7989:1: ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7989:1: ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7990:1: ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7991:1: ( rule__SoftwareComponent__TrafficSourcesAssignment_8_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:7991:2: rule__SoftwareComponent__TrafficSourcesAssignment_8_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__TrafficSourcesAssignment_8_2_in_rule__SoftwareComponent__Group_8__2__Impl16100);
+            rule__SoftwareComponent__TrafficSourcesAssignment_8_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__2__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8001:1: rule__SoftwareComponent__Group_8__3 : rule__SoftwareComponent__Group_8__3__Impl rule__SoftwareComponent__Group_8__4 ;
+    public final void rule__SoftwareComponent__Group_8__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8005:1: ( rule__SoftwareComponent__Group_8__3__Impl rule__SoftwareComponent__Group_8__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8006:2: rule__SoftwareComponent__Group_8__3__Impl rule__SoftwareComponent__Group_8__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__3__Impl_in_rule__SoftwareComponent__Group_8__316130);
+            rule__SoftwareComponent__Group_8__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__4_in_rule__SoftwareComponent__Group_8__316133);
+            rule__SoftwareComponent__Group_8__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__3"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8013:1: rule__SoftwareComponent__Group_8__3__Impl : ( ( rule__SoftwareComponent__Group_8_3__0 )* ) ;
+    public final void rule__SoftwareComponent__Group_8__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8017:1: ( ( ( rule__SoftwareComponent__Group_8_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8018:1: ( ( rule__SoftwareComponent__Group_8_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8018:1: ( ( rule__SoftwareComponent__Group_8_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8019:1: ( rule__SoftwareComponent__Group_8_3__0 )*
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8020:1: ( rule__SoftwareComponent__Group_8_3__0 )*
+            loop34:
+            do {
+                int alt34=2;
+                int LA34_0 = input.LA(1);
+
+                if ( (LA34_0==31) ) {
+                    alt34=1;
+                }
+
+
+                switch (alt34) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8020:2: rule__SoftwareComponent__Group_8_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8_3__0_in_rule__SoftwareComponent__Group_8__3__Impl16160);
+            	    rule__SoftwareComponent__Group_8_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop34;
+                }
+            } while (true);
+
+             after(grammarAccess.getSoftwareComponentAccess().getGroup_8_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__3__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8030:1: rule__SoftwareComponent__Group_8__4 : rule__SoftwareComponent__Group_8__4__Impl ;
+    public final void rule__SoftwareComponent__Group_8__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8034:1: ( rule__SoftwareComponent__Group_8__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8035:2: rule__SoftwareComponent__Group_8__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8__4__Impl_in_rule__SoftwareComponent__Group_8__416191);
+            rule__SoftwareComponent__Group_8__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__4"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8041:1: rule__SoftwareComponent__Group_8__4__Impl : ( '}' ) ;
+    public final void rule__SoftwareComponent__Group_8__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8045:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8046:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8046:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8047:1: '}'
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__SoftwareComponent__Group_8__4__Impl16219); 
+             after(grammarAccess.getSoftwareComponentAccess().getRightCurlyBracketKeyword_8_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8__4__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8070:1: rule__SoftwareComponent__Group_8_3__0 : rule__SoftwareComponent__Group_8_3__0__Impl rule__SoftwareComponent__Group_8_3__1 ;
+    public final void rule__SoftwareComponent__Group_8_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8074:1: ( rule__SoftwareComponent__Group_8_3__0__Impl rule__SoftwareComponent__Group_8_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8075:2: rule__SoftwareComponent__Group_8_3__0__Impl rule__SoftwareComponent__Group_8_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8_3__0__Impl_in_rule__SoftwareComponent__Group_8_3__016260);
+            rule__SoftwareComponent__Group_8_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8_3__1_in_rule__SoftwareComponent__Group_8_3__016263);
+            rule__SoftwareComponent__Group_8_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8_3__0"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8082:1: rule__SoftwareComponent__Group_8_3__0__Impl : ( ',' ) ;
+    public final void rule__SoftwareComponent__Group_8_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8086:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8087:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8087:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8088:1: ','
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__SoftwareComponent__Group_8_3__0__Impl16291); 
+             after(grammarAccess.getSoftwareComponentAccess().getCommaKeyword_8_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8_3__0__Impl"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8101:1: rule__SoftwareComponent__Group_8_3__1 : rule__SoftwareComponent__Group_8_3__1__Impl ;
+    public final void rule__SoftwareComponent__Group_8_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8105:1: ( rule__SoftwareComponent__Group_8_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8106:2: rule__SoftwareComponent__Group_8_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__Group_8_3__1__Impl_in_rule__SoftwareComponent__Group_8_3__116322);
+            rule__SoftwareComponent__Group_8_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8_3__1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__Group_8_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8112:1: rule__SoftwareComponent__Group_8_3__1__Impl : ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 ) ) ;
+    public final void rule__SoftwareComponent__Group_8_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8116:1: ( ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8117:1: ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8117:1: ( ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8118:1: ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8119:1: ( rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8119:2: rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1_in_rule__SoftwareComponent__Group_8_3__1__Impl16349);
+            rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesAssignment_8_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__Group_8_3__1__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8133:1: rule__EntityAddress__Group__0 : rule__EntityAddress__Group__0__Impl rule__EntityAddress__Group__1 ;
+    public final void rule__EntityAddress__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8137:1: ( rule__EntityAddress__Group__0__Impl rule__EntityAddress__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8138:2: rule__EntityAddress__Group__0__Impl rule__EntityAddress__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__0__Impl_in_rule__EntityAddress__Group__016383);
+            rule__EntityAddress__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__1_in_rule__EntityAddress__Group__016386);
+            rule__EntityAddress__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__0"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8145:1: rule__EntityAddress__Group__0__Impl : ( () ) ;
+    public final void rule__EntityAddress__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8149:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8150:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8150:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8151:1: ()
+            {
+             before(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8152:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8154:1: 
+            {
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getEntityAddressAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8164:1: rule__EntityAddress__Group__1 : rule__EntityAddress__Group__1__Impl rule__EntityAddress__Group__2 ;
+    public final void rule__EntityAddress__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8168:1: ( rule__EntityAddress__Group__1__Impl rule__EntityAddress__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8169:2: rule__EntityAddress__Group__1__Impl rule__EntityAddress__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__1__Impl_in_rule__EntityAddress__Group__116444);
+            rule__EntityAddress__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__2_in_rule__EntityAddress__Group__116447);
+            rule__EntityAddress__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__1"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8176:1: rule__EntityAddress__Group__1__Impl : ( 'EntityAddress' ) ;
+    public final void rule__EntityAddress__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8180:1: ( ( 'EntityAddress' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8181:1: ( 'EntityAddress' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8181:1: ( 'EntityAddress' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8182:1: 'EntityAddress'
+            {
+             before(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); 
+            match(input,69,FollowSets000.FOLLOW_69_in_rule__EntityAddress__Group__1__Impl16475); 
+             after(grammarAccess.getEntityAddressAccess().getEntityAddressKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8195:1: rule__EntityAddress__Group__2 : rule__EntityAddress__Group__2__Impl rule__EntityAddress__Group__3 ;
+    public final void rule__EntityAddress__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8199:1: ( rule__EntityAddress__Group__2__Impl rule__EntityAddress__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8200:2: rule__EntityAddress__Group__2__Impl rule__EntityAddress__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__2__Impl_in_rule__EntityAddress__Group__216506);
+            rule__EntityAddress__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__3_in_rule__EntityAddress__Group__216509);
+            rule__EntityAddress__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__2"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8207:1: rule__EntityAddress__Group__2__Impl : ( '{' ) ;
+    public final void rule__EntityAddress__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8211:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8212:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8212:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8213:1: '{'
+            {
+             before(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__EntityAddress__Group__2__Impl16537); 
+             after(grammarAccess.getEntityAddressAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8226:1: rule__EntityAddress__Group__3 : rule__EntityAddress__Group__3__Impl rule__EntityAddress__Group__4 ;
+    public final void rule__EntityAddress__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8230:1: ( rule__EntityAddress__Group__3__Impl rule__EntityAddress__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8231:2: rule__EntityAddress__Group__3__Impl rule__EntityAddress__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__3__Impl_in_rule__EntityAddress__Group__316568);
+            rule__EntityAddress__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__4_in_rule__EntityAddress__Group__316571);
+            rule__EntityAddress__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__3"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8238:1: rule__EntityAddress__Group__3__Impl : ( ( rule__EntityAddress__Group_3__0 )? ) ;
+    public final void rule__EntityAddress__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8242:1: ( ( ( rule__EntityAddress__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8243:1: ( ( rule__EntityAddress__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8243:1: ( ( rule__EntityAddress__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8244:1: ( rule__EntityAddress__Group_3__0 )?
+            {
+             before(grammarAccess.getEntityAddressAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8245:1: ( rule__EntityAddress__Group_3__0 )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==70) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8245:2: rule__EntityAddress__Group_3__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_3__0_in_rule__EntityAddress__Group__3__Impl16598);
+                    rule__EntityAddress__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8255:1: rule__EntityAddress__Group__4 : rule__EntityAddress__Group__4__Impl rule__EntityAddress__Group__5 ;
+    public final void rule__EntityAddress__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8259:1: ( rule__EntityAddress__Group__4__Impl rule__EntityAddress__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8260:2: rule__EntityAddress__Group__4__Impl rule__EntityAddress__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__4__Impl_in_rule__EntityAddress__Group__416629);
+            rule__EntityAddress__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__5_in_rule__EntityAddress__Group__416632);
+            rule__EntityAddress__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__4"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8267:1: rule__EntityAddress__Group__4__Impl : ( ( rule__EntityAddress__Group_4__0 )? ) ;
+    public final void rule__EntityAddress__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8271:1: ( ( ( rule__EntityAddress__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8272:1: ( ( rule__EntityAddress__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8272:1: ( ( rule__EntityAddress__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8273:1: ( rule__EntityAddress__Group_4__0 )?
+            {
+             before(grammarAccess.getEntityAddressAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8274:1: ( rule__EntityAddress__Group_4__0 )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==71) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8274:2: rule__EntityAddress__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_4__0_in_rule__EntityAddress__Group__4__Impl16659);
+                    rule__EntityAddress__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8284:1: rule__EntityAddress__Group__5 : rule__EntityAddress__Group__5__Impl ;
+    public final void rule__EntityAddress__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8288:1: ( rule__EntityAddress__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8289:2: rule__EntityAddress__Group__5__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group__5__Impl_in_rule__EntityAddress__Group__516690);
+            rule__EntityAddress__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__5"
+
+
+    // $ANTLR start "rule__EntityAddress__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8295:1: rule__EntityAddress__Group__5__Impl : ( '}' ) ;
+    public final void rule__EntityAddress__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8299:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8300:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8300:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8301:1: '}'
+            {
+             before(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__EntityAddress__Group__5__Impl16718); 
+             after(grammarAccess.getEntityAddressAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group__5__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8326:1: rule__EntityAddress__Group_3__0 : rule__EntityAddress__Group_3__0__Impl rule__EntityAddress__Group_3__1 ;
+    public final void rule__EntityAddress__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8330:1: ( rule__EntityAddress__Group_3__0__Impl rule__EntityAddress__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8331:2: rule__EntityAddress__Group_3__0__Impl rule__EntityAddress__Group_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_3__0__Impl_in_rule__EntityAddress__Group_3__016761);
+            rule__EntityAddress__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_3__1_in_rule__EntityAddress__Group_3__016764);
+            rule__EntityAddress__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_3__0"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8338:1: rule__EntityAddress__Group_3__0__Impl : ( 'address' ) ;
+    public final void rule__EntityAddress__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8342:1: ( ( 'address' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8343:1: ( 'address' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8343:1: ( 'address' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8344:1: 'address'
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); 
+            match(input,70,FollowSets000.FOLLOW_70_in_rule__EntityAddress__Group_3__0__Impl16792); 
+             after(grammarAccess.getEntityAddressAccess().getAddressKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8357:1: rule__EntityAddress__Group_3__1 : rule__EntityAddress__Group_3__1__Impl ;
+    public final void rule__EntityAddress__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8361:1: ( rule__EntityAddress__Group_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8362:2: rule__EntityAddress__Group_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_3__1__Impl_in_rule__EntityAddress__Group_3__116823);
+            rule__EntityAddress__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_3__1"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8368:1: rule__EntityAddress__Group_3__1__Impl : ( ( rule__EntityAddress__AddressAssignment_3_1 ) ) ;
+    public final void rule__EntityAddress__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8372:1: ( ( ( rule__EntityAddress__AddressAssignment_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8373:1: ( ( rule__EntityAddress__AddressAssignment_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8373:1: ( ( rule__EntityAddress__AddressAssignment_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8374:1: ( rule__EntityAddress__AddressAssignment_3_1 )
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8375:1: ( rule__EntityAddress__AddressAssignment_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8375:2: rule__EntityAddress__AddressAssignment_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__AddressAssignment_3_1_in_rule__EntityAddress__Group_3__1__Impl16850);
+            rule__EntityAddress__AddressAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getAddressAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8389:1: rule__EntityAddress__Group_4__0 : rule__EntityAddress__Group_4__0__Impl rule__EntityAddress__Group_4__1 ;
+    public final void rule__EntityAddress__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8393:1: ( rule__EntityAddress__Group_4__0__Impl rule__EntityAddress__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8394:2: rule__EntityAddress__Group_4__0__Impl rule__EntityAddress__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_4__0__Impl_in_rule__EntityAddress__Group_4__016884);
+            rule__EntityAddress__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_4__1_in_rule__EntityAddress__Group_4__016887);
+            rule__EntityAddress__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_4__0"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8401:1: rule__EntityAddress__Group_4__0__Impl : ( 'addressGivenBy' ) ;
+    public final void rule__EntityAddress__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8405:1: ( ( 'addressGivenBy' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8406:1: ( 'addressGivenBy' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8406:1: ( 'addressGivenBy' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8407:1: 'addressGivenBy'
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); 
+            match(input,71,FollowSets000.FOLLOW_71_in_rule__EntityAddress__Group_4__0__Impl16915); 
+             after(grammarAccess.getEntityAddressAccess().getAddressGivenByKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8420:1: rule__EntityAddress__Group_4__1 : rule__EntityAddress__Group_4__1__Impl ;
+    public final void rule__EntityAddress__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8424:1: ( rule__EntityAddress__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8425:2: rule__EntityAddress__Group_4__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__Group_4__1__Impl_in_rule__EntityAddress__Group_4__116946);
+            rule__EntityAddress__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_4__1"
+
+
+    // $ANTLR start "rule__EntityAddress__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8431:1: rule__EntityAddress__Group_4__1__Impl : ( ( rule__EntityAddress__AddressGivenByAssignment_4_1 ) ) ;
+    public final void rule__EntityAddress__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8435:1: ( ( ( rule__EntityAddress__AddressGivenByAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8436:1: ( ( rule__EntityAddress__AddressGivenByAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8436:1: ( ( rule__EntityAddress__AddressGivenByAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8437:1: ( rule__EntityAddress__AddressGivenByAssignment_4_1 )
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8438:1: ( rule__EntityAddress__AddressGivenByAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8438:2: rule__EntityAddress__AddressGivenByAssignment_4_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__EntityAddress__AddressGivenByAssignment_4_1_in_rule__EntityAddress__Group_4__1__Impl16973);
+            rule__EntityAddress__AddressGivenByAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getAddressGivenByAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8452:1: rule__ONOFFFlow__Group__0 : rule__ONOFFFlow__Group__0__Impl rule__ONOFFFlow__Group__1 ;
+    public final void rule__ONOFFFlow__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8456:1: ( rule__ONOFFFlow__Group__0__Impl rule__ONOFFFlow__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8457:2: rule__ONOFFFlow__Group__0__Impl rule__ONOFFFlow__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__0__Impl_in_rule__ONOFFFlow__Group__017007);
+            rule__ONOFFFlow__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__1_in_rule__ONOFFFlow__Group__017010);
+            rule__ONOFFFlow__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8464:1: rule__ONOFFFlow__Group__0__Impl : ( ( rule__ONOFFFlow__StartStateAssignment_0 ) ) ;
+    public final void rule__ONOFFFlow__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8468:1: ( ( ( rule__ONOFFFlow__StartStateAssignment_0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8469:1: ( ( rule__ONOFFFlow__StartStateAssignment_0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8469:1: ( ( rule__ONOFFFlow__StartStateAssignment_0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8470:1: ( rule__ONOFFFlow__StartStateAssignment_0 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8471:1: ( rule__ONOFFFlow__StartStateAssignment_0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8471:2: rule__ONOFFFlow__StartStateAssignment_0
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__StartStateAssignment_0_in_rule__ONOFFFlow__Group__0__Impl17037);
+            rule__ONOFFFlow__StartStateAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getStartStateAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8481:1: rule__ONOFFFlow__Group__1 : rule__ONOFFFlow__Group__1__Impl rule__ONOFFFlow__Group__2 ;
+    public final void rule__ONOFFFlow__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8485:1: ( rule__ONOFFFlow__Group__1__Impl rule__ONOFFFlow__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8486:2: rule__ONOFFFlow__Group__1__Impl rule__ONOFFFlow__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__1__Impl_in_rule__ONOFFFlow__Group__117067);
+            rule__ONOFFFlow__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__2_in_rule__ONOFFFlow__Group__117070);
+            rule__ONOFFFlow__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8493:1: rule__ONOFFFlow__Group__1__Impl : ( 'ONOFFFlow' ) ;
+    public final void rule__ONOFFFlow__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8497:1: ( ( 'ONOFFFlow' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8498:1: ( 'ONOFFFlow' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8498:1: ( 'ONOFFFlow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8499:1: 'ONOFFFlow'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); 
+            match(input,72,FollowSets000.FOLLOW_72_in_rule__ONOFFFlow__Group__1__Impl17098); 
+             after(grammarAccess.getONOFFFlowAccess().getONOFFFlowKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8512:1: rule__ONOFFFlow__Group__2 : rule__ONOFFFlow__Group__2__Impl rule__ONOFFFlow__Group__3 ;
+    public final void rule__ONOFFFlow__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8516:1: ( rule__ONOFFFlow__Group__2__Impl rule__ONOFFFlow__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8517:2: rule__ONOFFFlow__Group__2__Impl rule__ONOFFFlow__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__2__Impl_in_rule__ONOFFFlow__Group__217129);
+            rule__ONOFFFlow__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__3_in_rule__ONOFFFlow__Group__217132);
+            rule__ONOFFFlow__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8524:1: rule__ONOFFFlow__Group__2__Impl : ( ( rule__ONOFFFlow__IdAssignment_2 ) ) ;
+    public final void rule__ONOFFFlow__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8528:1: ( ( ( rule__ONOFFFlow__IdAssignment_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8529:1: ( ( rule__ONOFFFlow__IdAssignment_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8529:1: ( ( rule__ONOFFFlow__IdAssignment_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8530:1: ( rule__ONOFFFlow__IdAssignment_2 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8531:1: ( rule__ONOFFFlow__IdAssignment_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8531:2: rule__ONOFFFlow__IdAssignment_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__IdAssignment_2_in_rule__ONOFFFlow__Group__2__Impl17159);
+            rule__ONOFFFlow__IdAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getIdAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8541:1: rule__ONOFFFlow__Group__3 : rule__ONOFFFlow__Group__3__Impl rule__ONOFFFlow__Group__4 ;
+    public final void rule__ONOFFFlow__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8545:1: ( rule__ONOFFFlow__Group__3__Impl rule__ONOFFFlow__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8546:2: rule__ONOFFFlow__Group__3__Impl rule__ONOFFFlow__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__3__Impl_in_rule__ONOFFFlow__Group__317189);
+            rule__ONOFFFlow__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__4_in_rule__ONOFFFlow__Group__317192);
+            rule__ONOFFFlow__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__3"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8553:1: rule__ONOFFFlow__Group__3__Impl : ( '{' ) ;
+    public final void rule__ONOFFFlow__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8557:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8558:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8558:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8559:1: '{'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__ONOFFFlow__Group__3__Impl17220); 
+             after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8572:1: rule__ONOFFFlow__Group__4 : rule__ONOFFFlow__Group__4__Impl rule__ONOFFFlow__Group__5 ;
+    public final void rule__ONOFFFlow__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8576:1: ( rule__ONOFFFlow__Group__4__Impl rule__ONOFFFlow__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8577:2: rule__ONOFFFlow__Group__4__Impl rule__ONOFFFlow__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__4__Impl_in_rule__ONOFFFlow__Group__417251);
+            rule__ONOFFFlow__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__5_in_rule__ONOFFFlow__Group__417254);
+            rule__ONOFFFlow__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__4"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8584:1: rule__ONOFFFlow__Group__4__Impl : ( 'name' ) ;
+    public final void rule__ONOFFFlow__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8588:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8589:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8589:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8590:1: 'name'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); 
+            match(input,65,FollowSets000.FOLLOW_65_in_rule__ONOFFFlow__Group__4__Impl17282); 
+             after(grammarAccess.getONOFFFlowAccess().getNameKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8603:1: rule__ONOFFFlow__Group__5 : rule__ONOFFFlow__Group__5__Impl rule__ONOFFFlow__Group__6 ;
+    public final void rule__ONOFFFlow__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8607:1: ( rule__ONOFFFlow__Group__5__Impl rule__ONOFFFlow__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8608:2: rule__ONOFFFlow__Group__5__Impl rule__ONOFFFlow__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__5__Impl_in_rule__ONOFFFlow__Group__517313);
+            rule__ONOFFFlow__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__6_in_rule__ONOFFFlow__Group__517316);
+            rule__ONOFFFlow__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__5"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8615:1: rule__ONOFFFlow__Group__5__Impl : ( ( rule__ONOFFFlow__NameAssignment_5 ) ) ;
+    public final void rule__ONOFFFlow__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8619:1: ( ( ( rule__ONOFFFlow__NameAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8620:1: ( ( rule__ONOFFFlow__NameAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8620:1: ( ( rule__ONOFFFlow__NameAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8621:1: ( rule__ONOFFFlow__NameAssignment_5 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8622:1: ( rule__ONOFFFlow__NameAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8622:2: rule__ONOFFFlow__NameAssignment_5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__NameAssignment_5_in_rule__ONOFFFlow__Group__5__Impl17343);
+            rule__ONOFFFlow__NameAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getNameAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8632:1: rule__ONOFFFlow__Group__6 : rule__ONOFFFlow__Group__6__Impl rule__ONOFFFlow__Group__7 ;
+    public final void rule__ONOFFFlow__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8636:1: ( rule__ONOFFFlow__Group__6__Impl rule__ONOFFFlow__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8637:2: rule__ONOFFFlow__Group__6__Impl rule__ONOFFFlow__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__6__Impl_in_rule__ONOFFFlow__Group__617373);
+            rule__ONOFFFlow__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__7_in_rule__ONOFFFlow__Group__617376);
+            rule__ONOFFFlow__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__6"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8644:1: rule__ONOFFFlow__Group__6__Impl : ( ( rule__ONOFFFlow__Group_6__0 )? ) ;
+    public final void rule__ONOFFFlow__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8648:1: ( ( ( rule__ONOFFFlow__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8649:1: ( ( rule__ONOFFFlow__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8649:1: ( ( rule__ONOFFFlow__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8650:1: ( rule__ONOFFFlow__Group_6__0 )?
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8651:1: ( rule__ONOFFFlow__Group_6__0 )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==67) ) {
+                alt37=1;
+            }
+            switch (alt37) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8651:2: rule__ONOFFFlow__Group_6__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__0_in_rule__ONOFFFlow__Group__6__Impl17403);
+                    rule__ONOFFFlow__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8661:1: rule__ONOFFFlow__Group__7 : rule__ONOFFFlow__Group__7__Impl rule__ONOFFFlow__Group__8 ;
+    public final void rule__ONOFFFlow__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8665:1: ( rule__ONOFFFlow__Group__7__Impl rule__ONOFFFlow__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8666:2: rule__ONOFFFlow__Group__7__Impl rule__ONOFFFlow__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__7__Impl_in_rule__ONOFFFlow__Group__717434);
+            rule__ONOFFFlow__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__8_in_rule__ONOFFFlow__Group__717437);
+            rule__ONOFFFlow__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__7"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8673:1: rule__ONOFFFlow__Group__7__Impl : ( ( rule__ONOFFFlow__Group_7__0 )? ) ;
+    public final void rule__ONOFFFlow__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8677:1: ( ( ( rule__ONOFFFlow__Group_7__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8678:1: ( ( rule__ONOFFFlow__Group_7__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8678:1: ( ( rule__ONOFFFlow__Group_7__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8679:1: ( rule__ONOFFFlow__Group_7__0 )?
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8680:1: ( rule__ONOFFFlow__Group_7__0 )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==77) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8680:2: rule__ONOFFFlow__Group_7__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_7__0_in_rule__ONOFFFlow__Group__7__Impl17464);
+                    rule__ONOFFFlow__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8690:1: rule__ONOFFFlow__Group__8 : rule__ONOFFFlow__Group__8__Impl rule__ONOFFFlow__Group__9 ;
+    public final void rule__ONOFFFlow__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8694:1: ( rule__ONOFFFlow__Group__8__Impl rule__ONOFFFlow__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8695:2: rule__ONOFFFlow__Group__8__Impl rule__ONOFFFlow__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__8__Impl_in_rule__ONOFFFlow__Group__817495);
+            rule__ONOFFFlow__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__9_in_rule__ONOFFFlow__Group__817498);
+            rule__ONOFFFlow__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__8"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8702:1: rule__ONOFFFlow__Group__8__Impl : ( ( rule__ONOFFFlow__Group_8__0 )? ) ;
+    public final void rule__ONOFFFlow__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8706:1: ( ( ( rule__ONOFFFlow__Group_8__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8707:1: ( ( rule__ONOFFFlow__Group_8__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8707:1: ( ( rule__ONOFFFlow__Group_8__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8708:1: ( rule__ONOFFFlow__Group_8__0 )?
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8709:1: ( rule__ONOFFFlow__Group_8__0 )?
+            int alt39=2;
+            int LA39_0 = input.LA(1);
+
+            if ( (LA39_0==78) ) {
+                alt39=1;
+            }
+            switch (alt39) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8709:2: rule__ONOFFFlow__Group_8__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_8__0_in_rule__ONOFFFlow__Group__8__Impl17525);
+                    rule__ONOFFFlow__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8719:1: rule__ONOFFFlow__Group__9 : rule__ONOFFFlow__Group__9__Impl rule__ONOFFFlow__Group__10 ;
+    public final void rule__ONOFFFlow__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8723:1: ( rule__ONOFFFlow__Group__9__Impl rule__ONOFFFlow__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8724:2: rule__ONOFFFlow__Group__9__Impl rule__ONOFFFlow__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__9__Impl_in_rule__ONOFFFlow__Group__917556);
+            rule__ONOFFFlow__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__10_in_rule__ONOFFFlow__Group__917559);
+            rule__ONOFFFlow__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__9"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8731:1: rule__ONOFFFlow__Group__9__Impl : ( ( rule__ONOFFFlow__Group_9__0 )? ) ;
+    public final void rule__ONOFFFlow__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8735:1: ( ( ( rule__ONOFFFlow__Group_9__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8736:1: ( ( rule__ONOFFFlow__Group_9__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8736:1: ( ( rule__ONOFFFlow__Group_9__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8737:1: ( rule__ONOFFFlow__Group_9__0 )?
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8738:1: ( rule__ONOFFFlow__Group_9__0 )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==79) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8738:2: rule__ONOFFFlow__Group_9__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__0_in_rule__ONOFFFlow__Group__9__Impl17586);
+                    rule__ONOFFFlow__Group_9__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8748:1: rule__ONOFFFlow__Group__10 : rule__ONOFFFlow__Group__10__Impl rule__ONOFFFlow__Group__11 ;
+    public final void rule__ONOFFFlow__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8752:1: ( rule__ONOFFFlow__Group__10__Impl rule__ONOFFFlow__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8753:2: rule__ONOFFFlow__Group__10__Impl rule__ONOFFFlow__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__10__Impl_in_rule__ONOFFFlow__Group__1017617);
+            rule__ONOFFFlow__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__11_in_rule__ONOFFFlow__Group__1017620);
+            rule__ONOFFFlow__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__10"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8760:1: rule__ONOFFFlow__Group__10__Impl : ( 'ONstateIAT' ) ;
+    public final void rule__ONOFFFlow__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8764:1: ( ( 'ONstateIAT' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8765:1: ( 'ONstateIAT' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8765:1: ( 'ONstateIAT' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8766:1: 'ONstateIAT'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); 
+            match(input,73,FollowSets000.FOLLOW_73_in_rule__ONOFFFlow__Group__10__Impl17648); 
+             after(grammarAccess.getONOFFFlowAccess().getONstateIATKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__10__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8779:1: rule__ONOFFFlow__Group__11 : rule__ONOFFFlow__Group__11__Impl rule__ONOFFFlow__Group__12 ;
+    public final void rule__ONOFFFlow__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8783:1: ( rule__ONOFFFlow__Group__11__Impl rule__ONOFFFlow__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8784:2: rule__ONOFFFlow__Group__11__Impl rule__ONOFFFlow__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__11__Impl_in_rule__ONOFFFlow__Group__1117679);
+            rule__ONOFFFlow__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__12_in_rule__ONOFFFlow__Group__1117682);
+            rule__ONOFFFlow__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__11"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8791:1: rule__ONOFFFlow__Group__11__Impl : ( ( rule__ONOFFFlow__ONstateIATAssignment_11 ) ) ;
+    public final void rule__ONOFFFlow__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8795:1: ( ( ( rule__ONOFFFlow__ONstateIATAssignment_11 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8796:1: ( ( rule__ONOFFFlow__ONstateIATAssignment_11 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8796:1: ( ( rule__ONOFFFlow__ONstateIATAssignment_11 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8797:1: ( rule__ONOFFFlow__ONstateIATAssignment_11 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8798:1: ( rule__ONOFFFlow__ONstateIATAssignment_11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8798:2: rule__ONOFFFlow__ONstateIATAssignment_11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__ONstateIATAssignment_11_in_rule__ONOFFFlow__Group__11__Impl17709);
+            rule__ONOFFFlow__ONstateIATAssignment_11();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getONstateIATAssignment_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__11__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8808:1: rule__ONOFFFlow__Group__12 : rule__ONOFFFlow__Group__12__Impl rule__ONOFFFlow__Group__13 ;
+    public final void rule__ONOFFFlow__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8812:1: ( rule__ONOFFFlow__Group__12__Impl rule__ONOFFFlow__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8813:2: rule__ONOFFFlow__Group__12__Impl rule__ONOFFFlow__Group__13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__12__Impl_in_rule__ONOFFFlow__Group__1217739);
+            rule__ONOFFFlow__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__13_in_rule__ONOFFFlow__Group__1217742);
+            rule__ONOFFFlow__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__12"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8820:1: rule__ONOFFFlow__Group__12__Impl : ( 'ONstateDuration' ) ;
+    public final void rule__ONOFFFlow__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8824:1: ( ( 'ONstateDuration' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8825:1: ( 'ONstateDuration' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8825:1: ( 'ONstateDuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8826:1: 'ONstateDuration'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); 
+            match(input,74,FollowSets000.FOLLOW_74_in_rule__ONOFFFlow__Group__12__Impl17770); 
+             after(grammarAccess.getONOFFFlowAccess().getONstateDurationKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__12__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8839:1: rule__ONOFFFlow__Group__13 : rule__ONOFFFlow__Group__13__Impl rule__ONOFFFlow__Group__14 ;
+    public final void rule__ONOFFFlow__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8843:1: ( rule__ONOFFFlow__Group__13__Impl rule__ONOFFFlow__Group__14 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8844:2: rule__ONOFFFlow__Group__13__Impl rule__ONOFFFlow__Group__14
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__13__Impl_in_rule__ONOFFFlow__Group__1317801);
+            rule__ONOFFFlow__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__14_in_rule__ONOFFFlow__Group__1317804);
+            rule__ONOFFFlow__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__13"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8851:1: rule__ONOFFFlow__Group__13__Impl : ( ( rule__ONOFFFlow__ONstateDurationAssignment_13 ) ) ;
+    public final void rule__ONOFFFlow__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8855:1: ( ( ( rule__ONOFFFlow__ONstateDurationAssignment_13 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8856:1: ( ( rule__ONOFFFlow__ONstateDurationAssignment_13 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8856:1: ( ( rule__ONOFFFlow__ONstateDurationAssignment_13 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8857:1: ( rule__ONOFFFlow__ONstateDurationAssignment_13 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8858:1: ( rule__ONOFFFlow__ONstateDurationAssignment_13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8858:2: rule__ONOFFFlow__ONstateDurationAssignment_13
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__ONstateDurationAssignment_13_in_rule__ONOFFFlow__Group__13__Impl17831);
+            rule__ONOFFFlow__ONstateDurationAssignment_13();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getONstateDurationAssignment_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__13__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__14"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8868:1: rule__ONOFFFlow__Group__14 : rule__ONOFFFlow__Group__14__Impl rule__ONOFFFlow__Group__15 ;
+    public final void rule__ONOFFFlow__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8872:1: ( rule__ONOFFFlow__Group__14__Impl rule__ONOFFFlow__Group__15 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8873:2: rule__ONOFFFlow__Group__14__Impl rule__ONOFFFlow__Group__15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__14__Impl_in_rule__ONOFFFlow__Group__1417861);
+            rule__ONOFFFlow__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__15_in_rule__ONOFFFlow__Group__1417864);
+            rule__ONOFFFlow__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__14"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__14__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8880:1: rule__ONOFFFlow__Group__14__Impl : ( 'OFFstateDuration' ) ;
+    public final void rule__ONOFFFlow__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8884:1: ( ( 'OFFstateDuration' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8885:1: ( 'OFFstateDuration' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8885:1: ( 'OFFstateDuration' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8886:1: 'OFFstateDuration'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); 
+            match(input,75,FollowSets000.FOLLOW_75_in_rule__ONOFFFlow__Group__14__Impl17892); 
+             after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__14__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__15"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8899:1: rule__ONOFFFlow__Group__15 : rule__ONOFFFlow__Group__15__Impl rule__ONOFFFlow__Group__16 ;
+    public final void rule__ONOFFFlow__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8903:1: ( rule__ONOFFFlow__Group__15__Impl rule__ONOFFFlow__Group__16 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8904:2: rule__ONOFFFlow__Group__15__Impl rule__ONOFFFlow__Group__16
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__15__Impl_in_rule__ONOFFFlow__Group__1517923);
+            rule__ONOFFFlow__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__16_in_rule__ONOFFFlow__Group__1517926);
+            rule__ONOFFFlow__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__15"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__15__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8911:1: rule__ONOFFFlow__Group__15__Impl : ( ( rule__ONOFFFlow__OFFstateDurationAssignment_15 ) ) ;
+    public final void rule__ONOFFFlow__Group__15__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8915:1: ( ( ( rule__ONOFFFlow__OFFstateDurationAssignment_15 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8916:1: ( ( rule__ONOFFFlow__OFFstateDurationAssignment_15 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8916:1: ( ( rule__ONOFFFlow__OFFstateDurationAssignment_15 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8917:1: ( rule__ONOFFFlow__OFFstateDurationAssignment_15 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8918:1: ( rule__ONOFFFlow__OFFstateDurationAssignment_15 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8918:2: rule__ONOFFFlow__OFFstateDurationAssignment_15
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__OFFstateDurationAssignment_15_in_rule__ONOFFFlow__Group__15__Impl17953);
+            rule__ONOFFFlow__OFFstateDurationAssignment_15();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationAssignment_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__15__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__16"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8928:1: rule__ONOFFFlow__Group__16 : rule__ONOFFFlow__Group__16__Impl rule__ONOFFFlow__Group__17 ;
+    public final void rule__ONOFFFlow__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8932:1: ( rule__ONOFFFlow__Group__16__Impl rule__ONOFFFlow__Group__17 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8933:2: rule__ONOFFFlow__Group__16__Impl rule__ONOFFFlow__Group__17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__16__Impl_in_rule__ONOFFFlow__Group__1617983);
+            rule__ONOFFFlow__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__17_in_rule__ONOFFFlow__Group__1617986);
+            rule__ONOFFFlow__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__16"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__16__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8940:1: rule__ONOFFFlow__Group__16__Impl : ( 'packetLength' ) ;
+    public final void rule__ONOFFFlow__Group__16__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8944:1: ( ( 'packetLength' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8945:1: ( 'packetLength' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8945:1: ( 'packetLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8946:1: 'packetLength'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); 
+            match(input,76,FollowSets000.FOLLOW_76_in_rule__ONOFFFlow__Group__16__Impl18014); 
+             after(grammarAccess.getONOFFFlowAccess().getPacketLengthKeyword_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__16__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__17"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8959:1: rule__ONOFFFlow__Group__17 : rule__ONOFFFlow__Group__17__Impl rule__ONOFFFlow__Group__18 ;
+    public final void rule__ONOFFFlow__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8963:1: ( rule__ONOFFFlow__Group__17__Impl rule__ONOFFFlow__Group__18 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8964:2: rule__ONOFFFlow__Group__17__Impl rule__ONOFFFlow__Group__18
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__17__Impl_in_rule__ONOFFFlow__Group__1718045);
+            rule__ONOFFFlow__Group__17__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__18_in_rule__ONOFFFlow__Group__1718048);
+            rule__ONOFFFlow__Group__18();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__17"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__17__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8971:1: rule__ONOFFFlow__Group__17__Impl : ( ( rule__ONOFFFlow__PacketLengthAssignment_17 ) ) ;
+    public final void rule__ONOFFFlow__Group__17__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8975:1: ( ( ( rule__ONOFFFlow__PacketLengthAssignment_17 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8976:1: ( ( rule__ONOFFFlow__PacketLengthAssignment_17 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8976:1: ( ( rule__ONOFFFlow__PacketLengthAssignment_17 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8977:1: ( rule__ONOFFFlow__PacketLengthAssignment_17 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8978:1: ( rule__ONOFFFlow__PacketLengthAssignment_17 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8978:2: rule__ONOFFFlow__PacketLengthAssignment_17
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__PacketLengthAssignment_17_in_rule__ONOFFFlow__Group__17__Impl18075);
+            rule__ONOFFFlow__PacketLengthAssignment_17();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getPacketLengthAssignment_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__17__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__18"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8988:1: rule__ONOFFFlow__Group__18 : rule__ONOFFFlow__Group__18__Impl ;
+    public final void rule__ONOFFFlow__Group__18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8992:1: ( rule__ONOFFFlow__Group__18__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8993:2: rule__ONOFFFlow__Group__18__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group__18__Impl_in_rule__ONOFFFlow__Group__1818105);
+            rule__ONOFFFlow__Group__18__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__18"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group__18__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:8999:1: rule__ONOFFFlow__Group__18__Impl : ( '}' ) ;
+    public final void rule__ONOFFFlow__Group__18__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9003:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9004:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9004:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9005:1: '}'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__ONOFFFlow__Group__18__Impl18133); 
+             after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_18()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group__18__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9056:1: rule__ONOFFFlow__Group_6__0 : rule__ONOFFFlow__Group_6__0__Impl rule__ONOFFFlow__Group_6__1 ;
+    public final void rule__ONOFFFlow__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9060:1: ( rule__ONOFFFlow__Group_6__0__Impl rule__ONOFFFlow__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9061:2: rule__ONOFFFlow__Group_6__0__Impl rule__ONOFFFlow__Group_6__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__0__Impl_in_rule__ONOFFFlow__Group_6__018202);
+            rule__ONOFFFlow__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__1_in_rule__ONOFFFlow__Group_6__018205);
+            rule__ONOFFFlow__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9068:1: rule__ONOFFFlow__Group_6__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__ONOFFFlow__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9072:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9073:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9073:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9074:1: 'alternativeNames'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); 
+            match(input,67,FollowSets000.FOLLOW_67_in_rule__ONOFFFlow__Group_6__0__Impl18233); 
+             after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9087:1: rule__ONOFFFlow__Group_6__1 : rule__ONOFFFlow__Group_6__1__Impl rule__ONOFFFlow__Group_6__2 ;
+    public final void rule__ONOFFFlow__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9091:1: ( rule__ONOFFFlow__Group_6__1__Impl rule__ONOFFFlow__Group_6__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9092:2: rule__ONOFFFlow__Group_6__1__Impl rule__ONOFFFlow__Group_6__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__1__Impl_in_rule__ONOFFFlow__Group_6__118264);
+            rule__ONOFFFlow__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__2_in_rule__ONOFFFlow__Group_6__118267);
+            rule__ONOFFFlow__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9099:1: rule__ONOFFFlow__Group_6__1__Impl : ( '{' ) ;
+    public final void rule__ONOFFFlow__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9103:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9104:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9104:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9105:1: '{'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__ONOFFFlow__Group_6__1__Impl18295); 
+             after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9118:1: rule__ONOFFFlow__Group_6__2 : rule__ONOFFFlow__Group_6__2__Impl rule__ONOFFFlow__Group_6__3 ;
+    public final void rule__ONOFFFlow__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9122:1: ( rule__ONOFFFlow__Group_6__2__Impl rule__ONOFFFlow__Group_6__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9123:2: rule__ONOFFFlow__Group_6__2__Impl rule__ONOFFFlow__Group_6__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__2__Impl_in_rule__ONOFFFlow__Group_6__218326);
+            rule__ONOFFFlow__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__3_in_rule__ONOFFFlow__Group_6__218329);
+            rule__ONOFFFlow__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9130:1: rule__ONOFFFlow__Group_6__2__Impl : ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 ) ) ;
+    public final void rule__ONOFFFlow__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9134:1: ( ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9135:1: ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9135:1: ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9136:1: ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9137:1: ( rule__ONOFFFlow__AlternativeNamesAssignment_6_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9137:2: rule__ONOFFFlow__AlternativeNamesAssignment_6_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__AlternativeNamesAssignment_6_2_in_rule__ONOFFFlow__Group_6__2__Impl18356);
+            rule__ONOFFFlow__AlternativeNamesAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9147:1: rule__ONOFFFlow__Group_6__3 : rule__ONOFFFlow__Group_6__3__Impl rule__ONOFFFlow__Group_6__4 ;
+    public final void rule__ONOFFFlow__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9151:1: ( rule__ONOFFFlow__Group_6__3__Impl rule__ONOFFFlow__Group_6__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9152:2: rule__ONOFFFlow__Group_6__3__Impl rule__ONOFFFlow__Group_6__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__3__Impl_in_rule__ONOFFFlow__Group_6__318386);
+            rule__ONOFFFlow__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__4_in_rule__ONOFFFlow__Group_6__318389);
+            rule__ONOFFFlow__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__3"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9159:1: rule__ONOFFFlow__Group_6__3__Impl : ( ( rule__ONOFFFlow__Group_6_3__0 )* ) ;
+    public final void rule__ONOFFFlow__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9163:1: ( ( ( rule__ONOFFFlow__Group_6_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9164:1: ( ( rule__ONOFFFlow__Group_6_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9164:1: ( ( rule__ONOFFFlow__Group_6_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9165:1: ( rule__ONOFFFlow__Group_6_3__0 )*
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9166:1: ( rule__ONOFFFlow__Group_6_3__0 )*
+            loop41:
+            do {
+                int alt41=2;
+                int LA41_0 = input.LA(1);
+
+                if ( (LA41_0==31) ) {
+                    alt41=1;
+                }
+
+
+                switch (alt41) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9166:2: rule__ONOFFFlow__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6_3__0_in_rule__ONOFFFlow__Group_6__3__Impl18416);
+            	    rule__ONOFFFlow__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop41;
+                }
+            } while (true);
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9176:1: rule__ONOFFFlow__Group_6__4 : rule__ONOFFFlow__Group_6__4__Impl ;
+    public final void rule__ONOFFFlow__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9180:1: ( rule__ONOFFFlow__Group_6__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9181:2: rule__ONOFFFlow__Group_6__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6__4__Impl_in_rule__ONOFFFlow__Group_6__418447);
+            rule__ONOFFFlow__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__4"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9187:1: rule__ONOFFFlow__Group_6__4__Impl : ( '}' ) ;
+    public final void rule__ONOFFFlow__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9191:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9192:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9192:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9193:1: '}'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__ONOFFFlow__Group_6__4__Impl18475); 
+             after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9216:1: rule__ONOFFFlow__Group_6_3__0 : rule__ONOFFFlow__Group_6_3__0__Impl rule__ONOFFFlow__Group_6_3__1 ;
+    public final void rule__ONOFFFlow__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9220:1: ( rule__ONOFFFlow__Group_6_3__0__Impl rule__ONOFFFlow__Group_6_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9221:2: rule__ONOFFFlow__Group_6_3__0__Impl rule__ONOFFFlow__Group_6_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6_3__0__Impl_in_rule__ONOFFFlow__Group_6_3__018516);
+            rule__ONOFFFlow__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6_3__1_in_rule__ONOFFFlow__Group_6_3__018519);
+            rule__ONOFFFlow__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6_3__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9228:1: rule__ONOFFFlow__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__ONOFFFlow__Group_6_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9232:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9233:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9233:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9234:1: ','
+            {
+             before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__ONOFFFlow__Group_6_3__0__Impl18547); 
+             after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9247:1: rule__ONOFFFlow__Group_6_3__1 : rule__ONOFFFlow__Group_6_3__1__Impl ;
+    public final void rule__ONOFFFlow__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9251:1: ( rule__ONOFFFlow__Group_6_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9252:2: rule__ONOFFFlow__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_6_3__1__Impl_in_rule__ONOFFFlow__Group_6_3__118578);
+            rule__ONOFFFlow__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6_3__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_6_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9258:1: rule__ONOFFFlow__Group_6_3__1__Impl : ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 ) ) ;
+    public final void rule__ONOFFFlow__Group_6_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9262:1: ( ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9263:1: ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9263:1: ( ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9264:1: ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9265:1: ( rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9265:2: rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1_in_rule__ONOFFFlow__Group_6_3__1__Impl18605);
+            rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9279:1: rule__ONOFFFlow__Group_7__0 : rule__ONOFFFlow__Group_7__0__Impl rule__ONOFFFlow__Group_7__1 ;
+    public final void rule__ONOFFFlow__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9283:1: ( rule__ONOFFFlow__Group_7__0__Impl rule__ONOFFFlow__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9284:2: rule__ONOFFFlow__Group_7__0__Impl rule__ONOFFFlow__Group_7__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_7__0__Impl_in_rule__ONOFFFlow__Group_7__018639);
+            rule__ONOFFFlow__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_7__1_in_rule__ONOFFFlow__Group_7__018642);
+            rule__ONOFFFlow__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_7__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9291:1: rule__ONOFFFlow__Group_7__0__Impl : ( 'destinationSoftwareComponent' ) ;
+    public final void rule__ONOFFFlow__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9295:1: ( ( 'destinationSoftwareComponent' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9296:1: ( 'destinationSoftwareComponent' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9296:1: ( 'destinationSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9297:1: 'destinationSoftwareComponent'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); 
+            match(input,77,FollowSets000.FOLLOW_77_in_rule__ONOFFFlow__Group_7__0__Impl18670); 
+             after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9310:1: rule__ONOFFFlow__Group_7__1 : rule__ONOFFFlow__Group_7__1__Impl ;
+    public final void rule__ONOFFFlow__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9314:1: ( rule__ONOFFFlow__Group_7__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9315:2: rule__ONOFFFlow__Group_7__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_7__1__Impl_in_rule__ONOFFFlow__Group_7__118701);
+            rule__ONOFFFlow__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_7__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9321:1: rule__ONOFFFlow__Group_7__1__Impl : ( ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 ) ) ;
+    public final void rule__ONOFFFlow__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9325:1: ( ( ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9326:1: ( ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9326:1: ( ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9327:1: ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9328:1: ( rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9328:2: rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1_in_rule__ONOFFFlow__Group_7__1__Impl18728);
+            rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9342:1: rule__ONOFFFlow__Group_8__0 : rule__ONOFFFlow__Group_8__0__Impl rule__ONOFFFlow__Group_8__1 ;
+    public final void rule__ONOFFFlow__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9346:1: ( rule__ONOFFFlow__Group_8__0__Impl rule__ONOFFFlow__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9347:2: rule__ONOFFFlow__Group_8__0__Impl rule__ONOFFFlow__Group_8__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_8__0__Impl_in_rule__ONOFFFlow__Group_8__018762);
+            rule__ONOFFFlow__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_8__1_in_rule__ONOFFFlow__Group_8__018765);
+            rule__ONOFFFlow__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_8__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9354:1: rule__ONOFFFlow__Group_8__0__Impl : ( 'sourceSoftwareComponent' ) ;
+    public final void rule__ONOFFFlow__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9358:1: ( ( 'sourceSoftwareComponent' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9359:1: ( 'sourceSoftwareComponent' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9359:1: ( 'sourceSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9360:1: 'sourceSoftwareComponent'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); 
+            match(input,78,FollowSets000.FOLLOW_78_in_rule__ONOFFFlow__Group_8__0__Impl18793); 
+             after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9373:1: rule__ONOFFFlow__Group_8__1 : rule__ONOFFFlow__Group_8__1__Impl ;
+    public final void rule__ONOFFFlow__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9377:1: ( rule__ONOFFFlow__Group_8__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9378:2: rule__ONOFFFlow__Group_8__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_8__1__Impl_in_rule__ONOFFFlow__Group_8__118824);
+            rule__ONOFFFlow__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_8__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9384:1: rule__ONOFFFlow__Group_8__1__Impl : ( ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 ) ) ;
+    public final void rule__ONOFFFlow__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9388:1: ( ( ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9389:1: ( ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9389:1: ( ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9390:1: ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9391:1: ( rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9391:2: rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1_in_rule__ONOFFFlow__Group_8__1__Impl18851);
+            rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentAssignment_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9405:1: rule__ONOFFFlow__Group_9__0 : rule__ONOFFFlow__Group_9__0__Impl rule__ONOFFFlow__Group_9__1 ;
+    public final void rule__ONOFFFlow__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9409:1: ( rule__ONOFFFlow__Group_9__0__Impl rule__ONOFFFlow__Group_9__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9410:2: rule__ONOFFFlow__Group_9__0__Impl rule__ONOFFFlow__Group_9__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__0__Impl_in_rule__ONOFFFlow__Group_9__018885);
+            rule__ONOFFFlow__Group_9__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__1_in_rule__ONOFFFlow__Group_9__018888);
+            rule__ONOFFFlow__Group_9__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9417:1: rule__ONOFFFlow__Group_9__0__Impl : ( 'destinationAddresses' ) ;
+    public final void rule__ONOFFFlow__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9421:1: ( ( 'destinationAddresses' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9422:1: ( 'destinationAddresses' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9422:1: ( 'destinationAddresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9423:1: 'destinationAddresses'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); 
+            match(input,79,FollowSets000.FOLLOW_79_in_rule__ONOFFFlow__Group_9__0__Impl18916); 
+             after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesKeyword_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9436:1: rule__ONOFFFlow__Group_9__1 : rule__ONOFFFlow__Group_9__1__Impl rule__ONOFFFlow__Group_9__2 ;
+    public final void rule__ONOFFFlow__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9440:1: ( rule__ONOFFFlow__Group_9__1__Impl rule__ONOFFFlow__Group_9__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9441:2: rule__ONOFFFlow__Group_9__1__Impl rule__ONOFFFlow__Group_9__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__1__Impl_in_rule__ONOFFFlow__Group_9__118947);
+            rule__ONOFFFlow__Group_9__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__2_in_rule__ONOFFFlow__Group_9__118950);
+            rule__ONOFFFlow__Group_9__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9448:1: rule__ONOFFFlow__Group_9__1__Impl : ( '{' ) ;
+    public final void rule__ONOFFFlow__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9452:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9453:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9453:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9454:1: '{'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__ONOFFFlow__Group_9__1__Impl18978); 
+             after(grammarAccess.getONOFFFlowAccess().getLeftCurlyBracketKeyword_9_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9467:1: rule__ONOFFFlow__Group_9__2 : rule__ONOFFFlow__Group_9__2__Impl rule__ONOFFFlow__Group_9__3 ;
+    public final void rule__ONOFFFlow__Group_9__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9471:1: ( rule__ONOFFFlow__Group_9__2__Impl rule__ONOFFFlow__Group_9__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9472:2: rule__ONOFFFlow__Group_9__2__Impl rule__ONOFFFlow__Group_9__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__2__Impl_in_rule__ONOFFFlow__Group_9__219009);
+            rule__ONOFFFlow__Group_9__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__3_in_rule__ONOFFFlow__Group_9__219012);
+            rule__ONOFFFlow__Group_9__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9479:1: rule__ONOFFFlow__Group_9__2__Impl : ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 ) ) ;
+    public final void rule__ONOFFFlow__Group_9__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9483:1: ( ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9484:1: ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9484:1: ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9485:1: ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9486:1: ( rule__ONOFFFlow__DestinationAddressesAssignment_9_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9486:2: rule__ONOFFFlow__DestinationAddressesAssignment_9_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__DestinationAddressesAssignment_9_2_in_rule__ONOFFFlow__Group_9__2__Impl19039);
+            rule__ONOFFFlow__DestinationAddressesAssignment_9_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__2__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9496:1: rule__ONOFFFlow__Group_9__3 : rule__ONOFFFlow__Group_9__3__Impl rule__ONOFFFlow__Group_9__4 ;
+    public final void rule__ONOFFFlow__Group_9__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9500:1: ( rule__ONOFFFlow__Group_9__3__Impl rule__ONOFFFlow__Group_9__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9501:2: rule__ONOFFFlow__Group_9__3__Impl rule__ONOFFFlow__Group_9__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__3__Impl_in_rule__ONOFFFlow__Group_9__319069);
+            rule__ONOFFFlow__Group_9__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__4_in_rule__ONOFFFlow__Group_9__319072);
+            rule__ONOFFFlow__Group_9__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__3"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9508:1: rule__ONOFFFlow__Group_9__3__Impl : ( ( rule__ONOFFFlow__Group_9_3__0 )* ) ;
+    public final void rule__ONOFFFlow__Group_9__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9512:1: ( ( ( rule__ONOFFFlow__Group_9_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9513:1: ( ( rule__ONOFFFlow__Group_9_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9513:1: ( ( rule__ONOFFFlow__Group_9_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9514:1: ( rule__ONOFFFlow__Group_9_3__0 )*
+            {
+             before(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9515:1: ( rule__ONOFFFlow__Group_9_3__0 )*
+            loop42:
+            do {
+                int alt42=2;
+                int LA42_0 = input.LA(1);
+
+                if ( (LA42_0==31) ) {
+                    alt42=1;
+                }
+
+
+                switch (alt42) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9515:2: rule__ONOFFFlow__Group_9_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9_3__0_in_rule__ONOFFFlow__Group_9__3__Impl19099);
+            	    rule__ONOFFFlow__Group_9_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop42;
+                }
+            } while (true);
+
+             after(grammarAccess.getONOFFFlowAccess().getGroup_9_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__3__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9525:1: rule__ONOFFFlow__Group_9__4 : rule__ONOFFFlow__Group_9__4__Impl ;
+    public final void rule__ONOFFFlow__Group_9__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9529:1: ( rule__ONOFFFlow__Group_9__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9530:2: rule__ONOFFFlow__Group_9__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9__4__Impl_in_rule__ONOFFFlow__Group_9__419130);
+            rule__ONOFFFlow__Group_9__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__4"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9536:1: rule__ONOFFFlow__Group_9__4__Impl : ( '}' ) ;
+    public final void rule__ONOFFFlow__Group_9__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9540:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9541:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9541:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9542:1: '}'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__ONOFFFlow__Group_9__4__Impl19158); 
+             after(grammarAccess.getONOFFFlowAccess().getRightCurlyBracketKeyword_9_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9__4__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9565:1: rule__ONOFFFlow__Group_9_3__0 : rule__ONOFFFlow__Group_9_3__0__Impl rule__ONOFFFlow__Group_9_3__1 ;
+    public final void rule__ONOFFFlow__Group_9_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9569:1: ( rule__ONOFFFlow__Group_9_3__0__Impl rule__ONOFFFlow__Group_9_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9570:2: rule__ONOFFFlow__Group_9_3__0__Impl rule__ONOFFFlow__Group_9_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9_3__0__Impl_in_rule__ONOFFFlow__Group_9_3__019199);
+            rule__ONOFFFlow__Group_9_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9_3__1_in_rule__ONOFFFlow__Group_9_3__019202);
+            rule__ONOFFFlow__Group_9_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9_3__0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9577:1: rule__ONOFFFlow__Group_9_3__0__Impl : ( ',' ) ;
+    public final void rule__ONOFFFlow__Group_9_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9581:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9582:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9582:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9583:1: ','
+            {
+             before(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__ONOFFFlow__Group_9_3__0__Impl19230); 
+             after(grammarAccess.getONOFFFlowAccess().getCommaKeyword_9_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9_3__0__Impl"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9596:1: rule__ONOFFFlow__Group_9_3__1 : rule__ONOFFFlow__Group_9_3__1__Impl ;
+    public final void rule__ONOFFFlow__Group_9_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9600:1: ( rule__ONOFFFlow__Group_9_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9601:2: rule__ONOFFFlow__Group_9_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__Group_9_3__1__Impl_in_rule__ONOFFFlow__Group_9_3__119261);
+            rule__ONOFFFlow__Group_9_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9_3__1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__Group_9_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9607:1: rule__ONOFFFlow__Group_9_3__1__Impl : ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 ) ) ;
+    public final void rule__ONOFFFlow__Group_9_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9611:1: ( ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9612:1: ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9612:1: ( ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9613:1: ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9614:1: ( rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9614:2: rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1_in_rule__ONOFFFlow__Group_9_3__1__Impl19288);
+            rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesAssignment_9_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__Group_9_3__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9628:1: rule__GenericFlow__Group__0 : rule__GenericFlow__Group__0__Impl rule__GenericFlow__Group__1 ;
+    public final void rule__GenericFlow__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9632:1: ( rule__GenericFlow__Group__0__Impl rule__GenericFlow__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9633:2: rule__GenericFlow__Group__0__Impl rule__GenericFlow__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__0__Impl_in_rule__GenericFlow__Group__019322);
+            rule__GenericFlow__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__1_in_rule__GenericFlow__Group__019325);
+            rule__GenericFlow__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9640:1: rule__GenericFlow__Group__0__Impl : ( 'GenericFlow' ) ;
+    public final void rule__GenericFlow__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9644:1: ( ( 'GenericFlow' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9645:1: ( 'GenericFlow' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9645:1: ( 'GenericFlow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9646:1: 'GenericFlow'
+            {
+             before(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); 
+            match(input,80,FollowSets000.FOLLOW_80_in_rule__GenericFlow__Group__0__Impl19353); 
+             after(grammarAccess.getGenericFlowAccess().getGenericFlowKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9659:1: rule__GenericFlow__Group__1 : rule__GenericFlow__Group__1__Impl rule__GenericFlow__Group__2 ;
+    public final void rule__GenericFlow__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9663:1: ( rule__GenericFlow__Group__1__Impl rule__GenericFlow__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9664:2: rule__GenericFlow__Group__1__Impl rule__GenericFlow__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__1__Impl_in_rule__GenericFlow__Group__119384);
+            rule__GenericFlow__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__2_in_rule__GenericFlow__Group__119387);
+            rule__GenericFlow__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9671:1: rule__GenericFlow__Group__1__Impl : ( ( rule__GenericFlow__IdAssignment_1 ) ) ;
+    public final void rule__GenericFlow__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9675:1: ( ( ( rule__GenericFlow__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9676:1: ( ( rule__GenericFlow__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9676:1: ( ( rule__GenericFlow__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9677:1: ( rule__GenericFlow__IdAssignment_1 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9678:1: ( rule__GenericFlow__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9678:2: rule__GenericFlow__IdAssignment_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__IdAssignment_1_in_rule__GenericFlow__Group__1__Impl19414);
+            rule__GenericFlow__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9688:1: rule__GenericFlow__Group__2 : rule__GenericFlow__Group__2__Impl rule__GenericFlow__Group__3 ;
+    public final void rule__GenericFlow__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9692:1: ( rule__GenericFlow__Group__2__Impl rule__GenericFlow__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9693:2: rule__GenericFlow__Group__2__Impl rule__GenericFlow__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__2__Impl_in_rule__GenericFlow__Group__219444);
+            rule__GenericFlow__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__3_in_rule__GenericFlow__Group__219447);
+            rule__GenericFlow__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__2"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9700:1: rule__GenericFlow__Group__2__Impl : ( '{' ) ;
+    public final void rule__GenericFlow__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9704:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9705:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9705:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9706:1: '{'
+            {
+             before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__GenericFlow__Group__2__Impl19475); 
+             after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__2__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9719:1: rule__GenericFlow__Group__3 : rule__GenericFlow__Group__3__Impl rule__GenericFlow__Group__4 ;
+    public final void rule__GenericFlow__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9723:1: ( rule__GenericFlow__Group__3__Impl rule__GenericFlow__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9724:2: rule__GenericFlow__Group__3__Impl rule__GenericFlow__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__3__Impl_in_rule__GenericFlow__Group__319506);
+            rule__GenericFlow__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__4_in_rule__GenericFlow__Group__319509);
+            rule__GenericFlow__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__3"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9731:1: rule__GenericFlow__Group__3__Impl : ( 'name' ) ;
+    public final void rule__GenericFlow__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9735:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9736:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9736:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9737:1: 'name'
+            {
+             before(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets000.FOLLOW_65_in_rule__GenericFlow__Group__3__Impl19537); 
+             after(grammarAccess.getGenericFlowAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__3__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9750:1: rule__GenericFlow__Group__4 : rule__GenericFlow__Group__4__Impl rule__GenericFlow__Group__5 ;
+    public final void rule__GenericFlow__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9754:1: ( rule__GenericFlow__Group__4__Impl rule__GenericFlow__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9755:2: rule__GenericFlow__Group__4__Impl rule__GenericFlow__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__4__Impl_in_rule__GenericFlow__Group__419568);
+            rule__GenericFlow__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__5_in_rule__GenericFlow__Group__419571);
+            rule__GenericFlow__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__4"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9762:1: rule__GenericFlow__Group__4__Impl : ( ( rule__GenericFlow__NameAssignment_4 ) ) ;
+    public final void rule__GenericFlow__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9766:1: ( ( ( rule__GenericFlow__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9767:1: ( ( rule__GenericFlow__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9767:1: ( ( rule__GenericFlow__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9768:1: ( rule__GenericFlow__NameAssignment_4 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9769:1: ( rule__GenericFlow__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9769:2: rule__GenericFlow__NameAssignment_4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__NameAssignment_4_in_rule__GenericFlow__Group__4__Impl19598);
+            rule__GenericFlow__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__4__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9779:1: rule__GenericFlow__Group__5 : rule__GenericFlow__Group__5__Impl rule__GenericFlow__Group__6 ;
+    public final void rule__GenericFlow__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9783:1: ( rule__GenericFlow__Group__5__Impl rule__GenericFlow__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9784:2: rule__GenericFlow__Group__5__Impl rule__GenericFlow__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__5__Impl_in_rule__GenericFlow__Group__519628);
+            rule__GenericFlow__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__6_in_rule__GenericFlow__Group__519631);
+            rule__GenericFlow__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__5"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9791:1: rule__GenericFlow__Group__5__Impl : ( ( rule__GenericFlow__Group_5__0 )? ) ;
+    public final void rule__GenericFlow__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9795:1: ( ( ( rule__GenericFlow__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9796:1: ( ( rule__GenericFlow__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9796:1: ( ( rule__GenericFlow__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9797:1: ( rule__GenericFlow__Group_5__0 )?
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9798:1: ( rule__GenericFlow__Group_5__0 )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
+
+            if ( (LA43_0==67) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9798:2: rule__GenericFlow__Group_5__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__0_in_rule__GenericFlow__Group__5__Impl19658);
+                    rule__GenericFlow__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__5__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9808:1: rule__GenericFlow__Group__6 : rule__GenericFlow__Group__6__Impl rule__GenericFlow__Group__7 ;
+    public final void rule__GenericFlow__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9812:1: ( rule__GenericFlow__Group__6__Impl rule__GenericFlow__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9813:2: rule__GenericFlow__Group__6__Impl rule__GenericFlow__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__6__Impl_in_rule__GenericFlow__Group__619689);
+            rule__GenericFlow__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__7_in_rule__GenericFlow__Group__619692);
+            rule__GenericFlow__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__6"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9820:1: rule__GenericFlow__Group__6__Impl : ( ( rule__GenericFlow__Group_6__0 )? ) ;
+    public final void rule__GenericFlow__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9824:1: ( ( ( rule__GenericFlow__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9825:1: ( ( rule__GenericFlow__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9825:1: ( ( rule__GenericFlow__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9826:1: ( rule__GenericFlow__Group_6__0 )?
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9827:1: ( rule__GenericFlow__Group_6__0 )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==77) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9827:2: rule__GenericFlow__Group_6__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_6__0_in_rule__GenericFlow__Group__6__Impl19719);
+                    rule__GenericFlow__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__6__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9837:1: rule__GenericFlow__Group__7 : rule__GenericFlow__Group__7__Impl rule__GenericFlow__Group__8 ;
+    public final void rule__GenericFlow__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9841:1: ( rule__GenericFlow__Group__7__Impl rule__GenericFlow__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9842:2: rule__GenericFlow__Group__7__Impl rule__GenericFlow__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__7__Impl_in_rule__GenericFlow__Group__719750);
+            rule__GenericFlow__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__8_in_rule__GenericFlow__Group__719753);
+            rule__GenericFlow__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__7"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9849:1: rule__GenericFlow__Group__7__Impl : ( ( rule__GenericFlow__Group_7__0 )? ) ;
+    public final void rule__GenericFlow__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9853:1: ( ( ( rule__GenericFlow__Group_7__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9854:1: ( ( rule__GenericFlow__Group_7__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9854:1: ( ( rule__GenericFlow__Group_7__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9855:1: ( rule__GenericFlow__Group_7__0 )?
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9856:1: ( rule__GenericFlow__Group_7__0 )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==78) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9856:2: rule__GenericFlow__Group_7__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_7__0_in_rule__GenericFlow__Group__7__Impl19780);
+                    rule__GenericFlow__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__7__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9866:1: rule__GenericFlow__Group__8 : rule__GenericFlow__Group__8__Impl rule__GenericFlow__Group__9 ;
+    public final void rule__GenericFlow__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9870:1: ( rule__GenericFlow__Group__8__Impl rule__GenericFlow__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9871:2: rule__GenericFlow__Group__8__Impl rule__GenericFlow__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__8__Impl_in_rule__GenericFlow__Group__819811);
+            rule__GenericFlow__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__9_in_rule__GenericFlow__Group__819814);
+            rule__GenericFlow__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__8"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9878:1: rule__GenericFlow__Group__8__Impl : ( ( rule__GenericFlow__Group_8__0 )? ) ;
+    public final void rule__GenericFlow__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9882:1: ( ( ( rule__GenericFlow__Group_8__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9883:1: ( ( rule__GenericFlow__Group_8__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9883:1: ( ( rule__GenericFlow__Group_8__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9884:1: ( rule__GenericFlow__Group_8__0 )?
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9885:1: ( rule__GenericFlow__Group_8__0 )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==79) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9885:2: rule__GenericFlow__Group_8__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__0_in_rule__GenericFlow__Group__8__Impl19841);
+                    rule__GenericFlow__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__8__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9895:1: rule__GenericFlow__Group__9 : rule__GenericFlow__Group__9__Impl rule__GenericFlow__Group__10 ;
+    public final void rule__GenericFlow__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9899:1: ( rule__GenericFlow__Group__9__Impl rule__GenericFlow__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9900:2: rule__GenericFlow__Group__9__Impl rule__GenericFlow__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__9__Impl_in_rule__GenericFlow__Group__919872);
+            rule__GenericFlow__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__10_in_rule__GenericFlow__Group__919875);
+            rule__GenericFlow__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__9"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9907:1: rule__GenericFlow__Group__9__Impl : ( 'dataSize' ) ;
+    public final void rule__GenericFlow__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9911:1: ( ( 'dataSize' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9912:1: ( 'dataSize' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9912:1: ( 'dataSize' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9913:1: 'dataSize'
+            {
+             before(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); 
+            match(input,81,FollowSets000.FOLLOW_81_in_rule__GenericFlow__Group__9__Impl19903); 
+             after(grammarAccess.getGenericFlowAccess().getDataSizeKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__9__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9926:1: rule__GenericFlow__Group__10 : rule__GenericFlow__Group__10__Impl rule__GenericFlow__Group__11 ;
+    public final void rule__GenericFlow__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9930:1: ( rule__GenericFlow__Group__10__Impl rule__GenericFlow__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9931:2: rule__GenericFlow__Group__10__Impl rule__GenericFlow__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__10__Impl_in_rule__GenericFlow__Group__1019934);
+            rule__GenericFlow__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__11_in_rule__GenericFlow__Group__1019937);
+            rule__GenericFlow__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__10"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9938:1: rule__GenericFlow__Group__10__Impl : ( ( rule__GenericFlow__DataSizeAssignment_10 ) ) ;
+    public final void rule__GenericFlow__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9942:1: ( ( ( rule__GenericFlow__DataSizeAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9943:1: ( ( rule__GenericFlow__DataSizeAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9943:1: ( ( rule__GenericFlow__DataSizeAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9944:1: ( rule__GenericFlow__DataSizeAssignment_10 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9945:1: ( rule__GenericFlow__DataSizeAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9945:2: rule__GenericFlow__DataSizeAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__DataSizeAssignment_10_in_rule__GenericFlow__Group__10__Impl19964);
+            rule__GenericFlow__DataSizeAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getDataSizeAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__10__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9955:1: rule__GenericFlow__Group__11 : rule__GenericFlow__Group__11__Impl ;
+    public final void rule__GenericFlow__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9959:1: ( rule__GenericFlow__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9960:2: rule__GenericFlow__Group__11__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group__11__Impl_in_rule__GenericFlow__Group__1119994);
+            rule__GenericFlow__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__11"
+
+
+    // $ANTLR start "rule__GenericFlow__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9966:1: rule__GenericFlow__Group__11__Impl : ( '}' ) ;
+    public final void rule__GenericFlow__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9970:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9971:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9971:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:9972:1: '}'
+            {
+             before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__GenericFlow__Group__11__Impl20022); 
+             after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group__11__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10009:1: rule__GenericFlow__Group_5__0 : rule__GenericFlow__Group_5__0__Impl rule__GenericFlow__Group_5__1 ;
+    public final void rule__GenericFlow__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10013:1: ( rule__GenericFlow__Group_5__0__Impl rule__GenericFlow__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10014:2: rule__GenericFlow__Group_5__0__Impl rule__GenericFlow__Group_5__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__0__Impl_in_rule__GenericFlow__Group_5__020077);
+            rule__GenericFlow__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__1_in_rule__GenericFlow__Group_5__020080);
+            rule__GenericFlow__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10021:1: rule__GenericFlow__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__GenericFlow__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10025:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10026:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10026:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10027:1: 'alternativeNames'
+            {
+             before(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets000.FOLLOW_67_in_rule__GenericFlow__Group_5__0__Impl20108); 
+             after(grammarAccess.getGenericFlowAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10040:1: rule__GenericFlow__Group_5__1 : rule__GenericFlow__Group_5__1__Impl rule__GenericFlow__Group_5__2 ;
+    public final void rule__GenericFlow__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10044:1: ( rule__GenericFlow__Group_5__1__Impl rule__GenericFlow__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10045:2: rule__GenericFlow__Group_5__1__Impl rule__GenericFlow__Group_5__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__1__Impl_in_rule__GenericFlow__Group_5__120139);
+            rule__GenericFlow__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__2_in_rule__GenericFlow__Group_5__120142);
+            rule__GenericFlow__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10052:1: rule__GenericFlow__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__GenericFlow__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10056:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10057:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10057:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10058:1: '{'
+            {
+             before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__GenericFlow__Group_5__1__Impl20170); 
+             after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10071:1: rule__GenericFlow__Group_5__2 : rule__GenericFlow__Group_5__2__Impl rule__GenericFlow__Group_5__3 ;
+    public final void rule__GenericFlow__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10075:1: ( rule__GenericFlow__Group_5__2__Impl rule__GenericFlow__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10076:2: rule__GenericFlow__Group_5__2__Impl rule__GenericFlow__Group_5__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__2__Impl_in_rule__GenericFlow__Group_5__220201);
+            rule__GenericFlow__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__3_in_rule__GenericFlow__Group_5__220204);
+            rule__GenericFlow__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__2"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10083:1: rule__GenericFlow__Group_5__2__Impl : ( ( rule__GenericFlow__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__GenericFlow__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10087:1: ( ( ( rule__GenericFlow__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10088:1: ( ( rule__GenericFlow__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10088:1: ( ( rule__GenericFlow__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10089:1: ( rule__GenericFlow__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10090:1: ( rule__GenericFlow__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10090:2: rule__GenericFlow__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__AlternativeNamesAssignment_5_2_in_rule__GenericFlow__Group_5__2__Impl20231);
+            rule__GenericFlow__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10100:1: rule__GenericFlow__Group_5__3 : rule__GenericFlow__Group_5__3__Impl rule__GenericFlow__Group_5__4 ;
+    public final void rule__GenericFlow__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10104:1: ( rule__GenericFlow__Group_5__3__Impl rule__GenericFlow__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10105:2: rule__GenericFlow__Group_5__3__Impl rule__GenericFlow__Group_5__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__3__Impl_in_rule__GenericFlow__Group_5__320261);
+            rule__GenericFlow__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__4_in_rule__GenericFlow__Group_5__320264);
+            rule__GenericFlow__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__3"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10112:1: rule__GenericFlow__Group_5__3__Impl : ( ( rule__GenericFlow__Group_5_3__0 )* ) ;
+    public final void rule__GenericFlow__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10116:1: ( ( ( rule__GenericFlow__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10117:1: ( ( rule__GenericFlow__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10117:1: ( ( rule__GenericFlow__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10118:1: ( rule__GenericFlow__Group_5_3__0 )*
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10119:1: ( rule__GenericFlow__Group_5_3__0 )*
+            loop47:
+            do {
+                int alt47=2;
+                int LA47_0 = input.LA(1);
+
+                if ( (LA47_0==31) ) {
+                    alt47=1;
+                }
+
+
+                switch (alt47) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10119:2: rule__GenericFlow__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5_3__0_in_rule__GenericFlow__Group_5__3__Impl20291);
+            	    rule__GenericFlow__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop47;
+                }
+            } while (true);
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10129:1: rule__GenericFlow__Group_5__4 : rule__GenericFlow__Group_5__4__Impl ;
+    public final void rule__GenericFlow__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10133:1: ( rule__GenericFlow__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10134:2: rule__GenericFlow__Group_5__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5__4__Impl_in_rule__GenericFlow__Group_5__420322);
+            rule__GenericFlow__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__4"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10140:1: rule__GenericFlow__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__GenericFlow__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10144:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10145:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10145:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10146:1: '}'
+            {
+             before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__GenericFlow__Group_5__4__Impl20350); 
+             after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10169:1: rule__GenericFlow__Group_5_3__0 : rule__GenericFlow__Group_5_3__0__Impl rule__GenericFlow__Group_5_3__1 ;
+    public final void rule__GenericFlow__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10173:1: ( rule__GenericFlow__Group_5_3__0__Impl rule__GenericFlow__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10174:2: rule__GenericFlow__Group_5_3__0__Impl rule__GenericFlow__Group_5_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5_3__0__Impl_in_rule__GenericFlow__Group_5_3__020391);
+            rule__GenericFlow__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5_3__1_in_rule__GenericFlow__Group_5_3__020394);
+            rule__GenericFlow__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5_3__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10181:1: rule__GenericFlow__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__GenericFlow__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10185:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10186:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10186:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10187:1: ','
+            {
+             before(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__GenericFlow__Group_5_3__0__Impl20422); 
+             after(grammarAccess.getGenericFlowAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10200:1: rule__GenericFlow__Group_5_3__1 : rule__GenericFlow__Group_5_3__1__Impl ;
+    public final void rule__GenericFlow__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10204:1: ( rule__GenericFlow__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10205:2: rule__GenericFlow__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_5_3__1__Impl_in_rule__GenericFlow__Group_5_3__120453);
+            rule__GenericFlow__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5_3__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10211:1: rule__GenericFlow__Group_5_3__1__Impl : ( ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__GenericFlow__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10215:1: ( ( ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10216:1: ( ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10216:1: ( ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10217:1: ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10218:1: ( rule__GenericFlow__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10218:2: rule__GenericFlow__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__AlternativeNamesAssignment_5_3_1_in_rule__GenericFlow__Group_5_3__1__Impl20480);
+            rule__GenericFlow__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10232:1: rule__GenericFlow__Group_6__0 : rule__GenericFlow__Group_6__0__Impl rule__GenericFlow__Group_6__1 ;
+    public final void rule__GenericFlow__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10236:1: ( rule__GenericFlow__Group_6__0__Impl rule__GenericFlow__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10237:2: rule__GenericFlow__Group_6__0__Impl rule__GenericFlow__Group_6__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_6__0__Impl_in_rule__GenericFlow__Group_6__020514);
+            rule__GenericFlow__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_6__1_in_rule__GenericFlow__Group_6__020517);
+            rule__GenericFlow__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_6__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10244:1: rule__GenericFlow__Group_6__0__Impl : ( 'destinationSoftwareComponent' ) ;
+    public final void rule__GenericFlow__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10248:1: ( ( 'destinationSoftwareComponent' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10249:1: ( 'destinationSoftwareComponent' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10249:1: ( 'destinationSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10250:1: 'destinationSoftwareComponent'
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); 
+            match(input,77,FollowSets000.FOLLOW_77_in_rule__GenericFlow__Group_6__0__Impl20545); 
+             after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10263:1: rule__GenericFlow__Group_6__1 : rule__GenericFlow__Group_6__1__Impl ;
+    public final void rule__GenericFlow__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10267:1: ( rule__GenericFlow__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10268:2: rule__GenericFlow__Group_6__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_6__1__Impl_in_rule__GenericFlow__Group_6__120576);
+            rule__GenericFlow__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_6__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10274:1: rule__GenericFlow__Group_6__1__Impl : ( ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 ) ) ;
+    public final void rule__GenericFlow__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10278:1: ( ( ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10279:1: ( ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10279:1: ( ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10280:1: ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10281:1: ( rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10281:2: rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1_in_rule__GenericFlow__Group_6__1__Impl20603);
+            rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10295:1: rule__GenericFlow__Group_7__0 : rule__GenericFlow__Group_7__0__Impl rule__GenericFlow__Group_7__1 ;
+    public final void rule__GenericFlow__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10299:1: ( rule__GenericFlow__Group_7__0__Impl rule__GenericFlow__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10300:2: rule__GenericFlow__Group_7__0__Impl rule__GenericFlow__Group_7__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_7__0__Impl_in_rule__GenericFlow__Group_7__020637);
+            rule__GenericFlow__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_7__1_in_rule__GenericFlow__Group_7__020640);
+            rule__GenericFlow__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_7__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10307:1: rule__GenericFlow__Group_7__0__Impl : ( 'sourceSoftwareComponent' ) ;
+    public final void rule__GenericFlow__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10311:1: ( ( 'sourceSoftwareComponent' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10312:1: ( 'sourceSoftwareComponent' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10312:1: ( 'sourceSoftwareComponent' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10313:1: 'sourceSoftwareComponent'
+            {
+             before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); 
+            match(input,78,FollowSets000.FOLLOW_78_in_rule__GenericFlow__Group_7__0__Impl20668); 
+             after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10326:1: rule__GenericFlow__Group_7__1 : rule__GenericFlow__Group_7__1__Impl ;
+    public final void rule__GenericFlow__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10330:1: ( rule__GenericFlow__Group_7__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10331:2: rule__GenericFlow__Group_7__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_7__1__Impl_in_rule__GenericFlow__Group_7__120699);
+            rule__GenericFlow__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_7__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10337:1: rule__GenericFlow__Group_7__1__Impl : ( ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 ) ) ;
+    public final void rule__GenericFlow__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10341:1: ( ( ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10342:1: ( ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10342:1: ( ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10343:1: ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10344:1: ( rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10344:2: rule__GenericFlow__SourceSoftwareComponentAssignment_7_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__SourceSoftwareComponentAssignment_7_1_in_rule__GenericFlow__Group_7__1__Impl20726);
+            rule__GenericFlow__SourceSoftwareComponentAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10358:1: rule__GenericFlow__Group_8__0 : rule__GenericFlow__Group_8__0__Impl rule__GenericFlow__Group_8__1 ;
+    public final void rule__GenericFlow__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10362:1: ( rule__GenericFlow__Group_8__0__Impl rule__GenericFlow__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10363:2: rule__GenericFlow__Group_8__0__Impl rule__GenericFlow__Group_8__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__0__Impl_in_rule__GenericFlow__Group_8__020760);
+            rule__GenericFlow__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__1_in_rule__GenericFlow__Group_8__020763);
+            rule__GenericFlow__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10370:1: rule__GenericFlow__Group_8__0__Impl : ( 'destinationAddresses' ) ;
+    public final void rule__GenericFlow__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10374:1: ( ( 'destinationAddresses' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10375:1: ( 'destinationAddresses' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10375:1: ( 'destinationAddresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10376:1: 'destinationAddresses'
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); 
+            match(input,79,FollowSets000.FOLLOW_79_in_rule__GenericFlow__Group_8__0__Impl20791); 
+             after(grammarAccess.getGenericFlowAccess().getDestinationAddressesKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10389:1: rule__GenericFlow__Group_8__1 : rule__GenericFlow__Group_8__1__Impl rule__GenericFlow__Group_8__2 ;
+    public final void rule__GenericFlow__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10393:1: ( rule__GenericFlow__Group_8__1__Impl rule__GenericFlow__Group_8__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10394:2: rule__GenericFlow__Group_8__1__Impl rule__GenericFlow__Group_8__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__1__Impl_in_rule__GenericFlow__Group_8__120822);
+            rule__GenericFlow__Group_8__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__2_in_rule__GenericFlow__Group_8__120825);
+            rule__GenericFlow__Group_8__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10401:1: rule__GenericFlow__Group_8__1__Impl : ( '{' ) ;
+    public final void rule__GenericFlow__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10405:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10406:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10406:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10407:1: '{'
+            {
+             before(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__GenericFlow__Group_8__1__Impl20853); 
+             after(grammarAccess.getGenericFlowAccess().getLeftCurlyBracketKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10420:1: rule__GenericFlow__Group_8__2 : rule__GenericFlow__Group_8__2__Impl rule__GenericFlow__Group_8__3 ;
+    public final void rule__GenericFlow__Group_8__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10424:1: ( rule__GenericFlow__Group_8__2__Impl rule__GenericFlow__Group_8__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10425:2: rule__GenericFlow__Group_8__2__Impl rule__GenericFlow__Group_8__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__2__Impl_in_rule__GenericFlow__Group_8__220884);
+            rule__GenericFlow__Group_8__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__3_in_rule__GenericFlow__Group_8__220887);
+            rule__GenericFlow__Group_8__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__2"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10432:1: rule__GenericFlow__Group_8__2__Impl : ( ( rule__GenericFlow__DestinationAddressesAssignment_8_2 ) ) ;
+    public final void rule__GenericFlow__Group_8__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10436:1: ( ( ( rule__GenericFlow__DestinationAddressesAssignment_8_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10437:1: ( ( rule__GenericFlow__DestinationAddressesAssignment_8_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10437:1: ( ( rule__GenericFlow__DestinationAddressesAssignment_8_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10438:1: ( rule__GenericFlow__DestinationAddressesAssignment_8_2 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10439:1: ( rule__GenericFlow__DestinationAddressesAssignment_8_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10439:2: rule__GenericFlow__DestinationAddressesAssignment_8_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__DestinationAddressesAssignment_8_2_in_rule__GenericFlow__Group_8__2__Impl20914);
+            rule__GenericFlow__DestinationAddressesAssignment_8_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__2__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10449:1: rule__GenericFlow__Group_8__3 : rule__GenericFlow__Group_8__3__Impl rule__GenericFlow__Group_8__4 ;
+    public final void rule__GenericFlow__Group_8__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10453:1: ( rule__GenericFlow__Group_8__3__Impl rule__GenericFlow__Group_8__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10454:2: rule__GenericFlow__Group_8__3__Impl rule__GenericFlow__Group_8__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__3__Impl_in_rule__GenericFlow__Group_8__320944);
+            rule__GenericFlow__Group_8__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__4_in_rule__GenericFlow__Group_8__320947);
+            rule__GenericFlow__Group_8__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__3"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10461:1: rule__GenericFlow__Group_8__3__Impl : ( ( rule__GenericFlow__Group_8_3__0 )* ) ;
+    public final void rule__GenericFlow__Group_8__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10465:1: ( ( ( rule__GenericFlow__Group_8_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10466:1: ( ( rule__GenericFlow__Group_8_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10466:1: ( ( rule__GenericFlow__Group_8_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10467:1: ( rule__GenericFlow__Group_8_3__0 )*
+            {
+             before(grammarAccess.getGenericFlowAccess().getGroup_8_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10468:1: ( rule__GenericFlow__Group_8_3__0 )*
+            loop48:
+            do {
+                int alt48=2;
+                int LA48_0 = input.LA(1);
+
+                if ( (LA48_0==31) ) {
+                    alt48=1;
+                }
+
+
+                switch (alt48) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10468:2: rule__GenericFlow__Group_8_3__0
+            	    {
+            	    pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8_3__0_in_rule__GenericFlow__Group_8__3__Impl20974);
+            	    rule__GenericFlow__Group_8_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop48;
+                }
+            } while (true);
+
+             after(grammarAccess.getGenericFlowAccess().getGroup_8_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__3__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10478:1: rule__GenericFlow__Group_8__4 : rule__GenericFlow__Group_8__4__Impl ;
+    public final void rule__GenericFlow__Group_8__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10482:1: ( rule__GenericFlow__Group_8__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10483:2: rule__GenericFlow__Group_8__4__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8__4__Impl_in_rule__GenericFlow__Group_8__421005);
+            rule__GenericFlow__Group_8__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__4"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10489:1: rule__GenericFlow__Group_8__4__Impl : ( '}' ) ;
+    public final void rule__GenericFlow__Group_8__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10493:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10494:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10494:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10495:1: '}'
+            {
+             before(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__GenericFlow__Group_8__4__Impl21033); 
+             after(grammarAccess.getGenericFlowAccess().getRightCurlyBracketKeyword_8_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8__4__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10518:1: rule__GenericFlow__Group_8_3__0 : rule__GenericFlow__Group_8_3__0__Impl rule__GenericFlow__Group_8_3__1 ;
+    public final void rule__GenericFlow__Group_8_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10522:1: ( rule__GenericFlow__Group_8_3__0__Impl rule__GenericFlow__Group_8_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10523:2: rule__GenericFlow__Group_8_3__0__Impl rule__GenericFlow__Group_8_3__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8_3__0__Impl_in_rule__GenericFlow__Group_8_3__021074);
+            rule__GenericFlow__Group_8_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8_3__1_in_rule__GenericFlow__Group_8_3__021077);
+            rule__GenericFlow__Group_8_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8_3__0"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10530:1: rule__GenericFlow__Group_8_3__0__Impl : ( ',' ) ;
+    public final void rule__GenericFlow__Group_8_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10534:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10535:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10535:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10536:1: ','
+            {
+             before(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); 
+            match(input,31,FollowSets000.FOLLOW_31_in_rule__GenericFlow__Group_8_3__0__Impl21105); 
+             after(grammarAccess.getGenericFlowAccess().getCommaKeyword_8_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8_3__0__Impl"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10549:1: rule__GenericFlow__Group_8_3__1 : rule__GenericFlow__Group_8_3__1__Impl ;
+    public final void rule__GenericFlow__Group_8_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10553:1: ( rule__GenericFlow__Group_8_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10554:2: rule__GenericFlow__Group_8_3__1__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__Group_8_3__1__Impl_in_rule__GenericFlow__Group_8_3__121136);
+            rule__GenericFlow__Group_8_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8_3__1"
+
+
+    // $ANTLR start "rule__GenericFlow__Group_8_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10560:1: rule__GenericFlow__Group_8_3__1__Impl : ( ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 ) ) ;
+    public final void rule__GenericFlow__Group_8_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10564:1: ( ( ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10565:1: ( ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10565:1: ( ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10566:1: ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 )
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10567:1: ( rule__GenericFlow__DestinationAddressesAssignment_8_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10567:2: rule__GenericFlow__DestinationAddressesAssignment_8_3_1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__GenericFlow__DestinationAddressesAssignment_8_3_1_in_rule__GenericFlow__Group_8_3__1__Impl21163);
+            rule__GenericFlow__DestinationAddressesAssignment_8_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationAddressesAssignment_8_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__Group_8_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10581:1: rule__NetworkProtocol__Group__0 : rule__NetworkProtocol__Group__0__Impl rule__NetworkProtocol__Group__1 ;
+    public final void rule__NetworkProtocol__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10585:1: ( rule__NetworkProtocol__Group__0__Impl rule__NetworkProtocol__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10586:2: rule__NetworkProtocol__Group__0__Impl rule__NetworkProtocol__Group__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__0__Impl_in_rule__NetworkProtocol__Group__021197);
+            rule__NetworkProtocol__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__1_in_rule__NetworkProtocol__Group__021200);
+            rule__NetworkProtocol__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__0"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10593:1: rule__NetworkProtocol__Group__0__Impl : ( ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )? ) ;
+    public final void rule__NetworkProtocol__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10597:1: ( ( ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10598:1: ( ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10598:1: ( ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10599:1: ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )?
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10600:1: ( rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 )?
+            int alt49=2;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==160) ) {
+                alt49=1;
+            }
+            switch (alt49) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10600:2: rule__NetworkProtocol__DeliveryGuaranteedAssignment_0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__DeliveryGuaranteedAssignment_0_in_rule__NetworkProtocol__Group__0__Impl21227);
+                    rule__NetworkProtocol__DeliveryGuaranteedAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10610:1: rule__NetworkProtocol__Group__1 : rule__NetworkProtocol__Group__1__Impl rule__NetworkProtocol__Group__2 ;
+    public final void rule__NetworkProtocol__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10614:1: ( rule__NetworkProtocol__Group__1__Impl rule__NetworkProtocol__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10615:2: rule__NetworkProtocol__Group__1__Impl rule__NetworkProtocol__Group__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__1__Impl_in_rule__NetworkProtocol__Group__121258);
+            rule__NetworkProtocol__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__2_in_rule__NetworkProtocol__Group__121261);
+            rule__NetworkProtocol__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__1"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10622:1: rule__NetworkProtocol__Group__1__Impl : ( 'NetworkProtocol' ) ;
+    public final void rule__NetworkProtocol__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10626:1: ( ( 'NetworkProtocol' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10627:1: ( 'NetworkProtocol' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10627:1: ( 'NetworkProtocol' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10628:1: 'NetworkProtocol'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); 
+            match(input,82,FollowSets000.FOLLOW_82_in_rule__NetworkProtocol__Group__1__Impl21289); 
+             after(grammarAccess.getNetworkProtocolAccess().getNetworkProtocolKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10641:1: rule__NetworkProtocol__Group__2 : rule__NetworkProtocol__Group__2__Impl rule__NetworkProtocol__Group__3 ;
+    public final void rule__NetworkProtocol__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10645:1: ( rule__NetworkProtocol__Group__2__Impl rule__NetworkProtocol__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10646:2: rule__NetworkProtocol__Group__2__Impl rule__NetworkProtocol__Group__3
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__2__Impl_in_rule__NetworkProtocol__Group__221320);
+            rule__NetworkProtocol__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__3_in_rule__NetworkProtocol__Group__221323);
+            rule__NetworkProtocol__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__2"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10653:1: rule__NetworkProtocol__Group__2__Impl : ( ( rule__NetworkProtocol__NameAssignment_2 ) ) ;
+    public final void rule__NetworkProtocol__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10657:1: ( ( ( rule__NetworkProtocol__NameAssignment_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10658:1: ( ( rule__NetworkProtocol__NameAssignment_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10658:1: ( ( rule__NetworkProtocol__NameAssignment_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10659:1: ( rule__NetworkProtocol__NameAssignment_2 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10660:1: ( rule__NetworkProtocol__NameAssignment_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10660:2: rule__NetworkProtocol__NameAssignment_2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__NameAssignment_2_in_rule__NetworkProtocol__Group__2__Impl21350);
+            rule__NetworkProtocol__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10670:1: rule__NetworkProtocol__Group__3 : rule__NetworkProtocol__Group__3__Impl rule__NetworkProtocol__Group__4 ;
+    public final void rule__NetworkProtocol__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10674:1: ( rule__NetworkProtocol__Group__3__Impl rule__NetworkProtocol__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10675:2: rule__NetworkProtocol__Group__3__Impl rule__NetworkProtocol__Group__4
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__3__Impl_in_rule__NetworkProtocol__Group__321380);
+            rule__NetworkProtocol__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__4_in_rule__NetworkProtocol__Group__321383);
+            rule__NetworkProtocol__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__3"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10682:1: rule__NetworkProtocol__Group__3__Impl : ( '{' ) ;
+    public final void rule__NetworkProtocol__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10686:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10687:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10687:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10688:1: '{'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,23,FollowSets000.FOLLOW_23_in_rule__NetworkProtocol__Group__3__Impl21411); 
+             after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10701:1: rule__NetworkProtocol__Group__4 : rule__NetworkProtocol__Group__4__Impl rule__NetworkProtocol__Group__5 ;
+    public final void rule__NetworkProtocol__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10705:1: ( rule__NetworkProtocol__Group__4__Impl rule__NetworkProtocol__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10706:2: rule__NetworkProtocol__Group__4__Impl rule__NetworkProtocol__Group__5
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__4__Impl_in_rule__NetworkProtocol__Group__421442);
+            rule__NetworkProtocol__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__5_in_rule__NetworkProtocol__Group__421445);
+            rule__NetworkProtocol__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__4"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10713:1: rule__NetworkProtocol__Group__4__Impl : ( ( rule__NetworkProtocol__Group_4__0 )? ) ;
+    public final void rule__NetworkProtocol__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10717:1: ( ( ( rule__NetworkProtocol__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10718:1: ( ( rule__NetworkProtocol__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10718:1: ( ( rule__NetworkProtocol__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10719:1: ( rule__NetworkProtocol__Group_4__0 )?
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10720:1: ( rule__NetworkProtocol__Group_4__0 )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==67) ) {
+                alt50=1;
+            }
+            switch (alt50) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10720:2: rule__NetworkProtocol__Group_4__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_4__0_in_rule__NetworkProtocol__Group__4__Impl21472);
+                    rule__NetworkProtocol__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10730:1: rule__NetworkProtocol__Group__5 : rule__NetworkProtocol__Group__5__Impl rule__NetworkProtocol__Group__6 ;
+    public final void rule__NetworkProtocol__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10734:1: ( rule__NetworkProtocol__Group__5__Impl rule__NetworkProtocol__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10735:2: rule__NetworkProtocol__Group__5__Impl rule__NetworkProtocol__Group__6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__5__Impl_in_rule__NetworkProtocol__Group__521503);
+            rule__NetworkProtocol__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__6_in_rule__NetworkProtocol__Group__521506);
+            rule__NetworkProtocol__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__5"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10742:1: rule__NetworkProtocol__Group__5__Impl : ( 'mtu' ) ;
+    public final void rule__NetworkProtocol__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10746:1: ( ( 'mtu' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10747:1: ( 'mtu' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10747:1: ( 'mtu' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10748:1: 'mtu'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); 
+            match(input,83,FollowSets000.FOLLOW_83_in_rule__NetworkProtocol__Group__5__Impl21534); 
+             after(grammarAccess.getNetworkProtocolAccess().getMtuKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__5__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10761:1: rule__NetworkProtocol__Group__6 : rule__NetworkProtocol__Group__6__Impl rule__NetworkProtocol__Group__7 ;
+    public final void rule__NetworkProtocol__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10765:1: ( rule__NetworkProtocol__Group__6__Impl rule__NetworkProtocol__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10766:2: rule__NetworkProtocol__Group__6__Impl rule__NetworkProtocol__Group__7
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__6__Impl_in_rule__NetworkProtocol__Group__621565);
+            rule__NetworkProtocol__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__7_in_rule__NetworkProtocol__Group__621568);
+            rule__NetworkProtocol__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__6"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10773:1: rule__NetworkProtocol__Group__6__Impl : ( ( rule__NetworkProtocol__MtuAssignment_6 ) ) ;
+    public final void rule__NetworkProtocol__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10777:1: ( ( ( rule__NetworkProtocol__MtuAssignment_6 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10778:1: ( ( rule__NetworkProtocol__MtuAssignment_6 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10778:1: ( ( rule__NetworkProtocol__MtuAssignment_6 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10779:1: ( rule__NetworkProtocol__MtuAssignment_6 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10780:1: ( rule__NetworkProtocol__MtuAssignment_6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10780:2: rule__NetworkProtocol__MtuAssignment_6
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__MtuAssignment_6_in_rule__NetworkProtocol__Group__6__Impl21595);
+            rule__NetworkProtocol__MtuAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getMtuAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__6__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10790:1: rule__NetworkProtocol__Group__7 : rule__NetworkProtocol__Group__7__Impl rule__NetworkProtocol__Group__8 ;
+    public final void rule__NetworkProtocol__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10794:1: ( rule__NetworkProtocol__Group__7__Impl rule__NetworkProtocol__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10795:2: rule__NetworkProtocol__Group__7__Impl rule__NetworkProtocol__Group__8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__7__Impl_in_rule__NetworkProtocol__Group__721625);
+            rule__NetworkProtocol__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__8_in_rule__NetworkProtocol__Group__721628);
+            rule__NetworkProtocol__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__7"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10802:1: rule__NetworkProtocol__Group__7__Impl : ( 'headersLength' ) ;
+    public final void rule__NetworkProtocol__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10806:1: ( ( 'headersLength' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10807:1: ( 'headersLength' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10807:1: ( 'headersLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10808:1: 'headersLength'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); 
+            match(input,84,FollowSets000.FOLLOW_84_in_rule__NetworkProtocol__Group__7__Impl21656); 
+             after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__7__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10821:1: rule__NetworkProtocol__Group__8 : rule__NetworkProtocol__Group__8__Impl rule__NetworkProtocol__Group__9 ;
+    public final void rule__NetworkProtocol__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10825:1: ( rule__NetworkProtocol__Group__8__Impl rule__NetworkProtocol__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10826:2: rule__NetworkProtocol__Group__8__Impl rule__NetworkProtocol__Group__9
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__8__Impl_in_rule__NetworkProtocol__Group__821687);
+            rule__NetworkProtocol__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__9_in_rule__NetworkProtocol__Group__821690);
+            rule__NetworkProtocol__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__8"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10833:1: rule__NetworkProtocol__Group__8__Impl : ( ( rule__NetworkProtocol__HeadersLengthAssignment_8 ) ) ;
+    public final void rule__NetworkProtocol__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10837:1: ( ( ( rule__NetworkProtocol__HeadersLengthAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10838:1: ( ( rule__NetworkProtocol__HeadersLengthAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10838:1: ( ( rule__NetworkProtocol__HeadersLengthAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10839:1: ( rule__NetworkProtocol__HeadersLengthAssignment_8 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10840:1: ( rule__NetworkProtocol__HeadersLengthAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10840:2: rule__NetworkProtocol__HeadersLengthAssignment_8
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__HeadersLengthAssignment_8_in_rule__NetworkProtocol__Group__8__Impl21717);
+            rule__NetworkProtocol__HeadersLengthAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__8__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10850:1: rule__NetworkProtocol__Group__9 : rule__NetworkProtocol__Group__9__Impl rule__NetworkProtocol__Group__10 ;
+    public final void rule__NetworkProtocol__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10854:1: ( rule__NetworkProtocol__Group__9__Impl rule__NetworkProtocol__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10855:2: rule__NetworkProtocol__Group__9__Impl rule__NetworkProtocol__Group__10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__9__Impl_in_rule__NetworkProtocol__Group__921747);
+            rule__NetworkProtocol__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__10_in_rule__NetworkProtocol__Group__921750);
+            rule__NetworkProtocol__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__9"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10862:1: rule__NetworkProtocol__Group__9__Impl : ( 'dataUnitLength' ) ;
+    public final void rule__NetworkProtocol__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10866:1: ( ( 'dataUnitLength' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10867:1: ( 'dataUnitLength' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10867:1: ( 'dataUnitLength' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10868:1: 'dataUnitLength'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); 
+            match(input,85,FollowSets000.FOLLOW_85_in_rule__NetworkProtocol__Group__9__Impl21778); 
+             after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__9__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10881:1: rule__NetworkProtocol__Group__10 : rule__NetworkProtocol__Group__10__Impl rule__NetworkProtocol__Group__11 ;
+    public final void rule__NetworkProtocol__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10885:1: ( rule__NetworkProtocol__Group__10__Impl rule__NetworkProtocol__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10886:2: rule__NetworkProtocol__Group__10__Impl rule__NetworkProtocol__Group__11
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__10__Impl_in_rule__NetworkProtocol__Group__1021809);
+            rule__NetworkProtocol__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__11_in_rule__NetworkProtocol__Group__1021812);
+            rule__NetworkProtocol__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__10"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10893:1: rule__NetworkProtocol__Group__10__Impl : ( ( rule__NetworkProtocol__DataUnitLengthAssignment_10 ) ) ;
+    public final void rule__NetworkProtocol__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10897:1: ( ( ( rule__NetworkProtocol__DataUnitLengthAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10898:1: ( ( rule__NetworkProtocol__DataUnitLengthAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10898:1: ( ( rule__NetworkProtocol__DataUnitLengthAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10899:1: ( rule__NetworkProtocol__DataUnitLengthAssignment_10 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10900:1: ( rule__NetworkProtocol__DataUnitLengthAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10900:2: rule__NetworkProtocol__DataUnitLengthAssignment_10
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__DataUnitLengthAssignment_10_in_rule__NetworkProtocol__Group__10__Impl21839);
+            rule__NetworkProtocol__DataUnitLengthAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__10__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10910:1: rule__NetworkProtocol__Group__11 : rule__NetworkProtocol__Group__11__Impl rule__NetworkProtocol__Group__12 ;
+    public final void rule__NetworkProtocol__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10914:1: ( rule__NetworkProtocol__Group__11__Impl rule__NetworkProtocol__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10915:2: rule__NetworkProtocol__Group__11__Impl rule__NetworkProtocol__Group__12
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__11__Impl_in_rule__NetworkProtocol__Group__1121869);
+            rule__NetworkProtocol__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__12_in_rule__NetworkProtocol__Group__1121872);
+            rule__NetworkProtocol__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__11"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10922:1: rule__NetworkProtocol__Group__11__Impl : ( ( rule__NetworkProtocol__Group_11__0 )? ) ;
+    public final void rule__NetworkProtocol__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10926:1: ( ( ( rule__NetworkProtocol__Group_11__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10927:1: ( ( rule__NetworkProtocol__Group_11__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10927:1: ( ( rule__NetworkProtocol__Group_11__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10928:1: ( rule__NetworkProtocol__Group_11__0 )?
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getGroup_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10929:1: ( rule__NetworkProtocol__Group_11__0 )?
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==86) ) {
+                alt51=1;
+            }
+            switch (alt51) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10929:2: rule__NetworkProtocol__Group_11__0
+                    {
+                    pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_11__0_in_rule__NetworkProtocol__Group__11__Impl21899);
+                    rule__NetworkProtocol__Group_11__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__11__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10939:1: rule__NetworkProtocol__Group__12 : rule__NetworkProtocol__Group__12__Impl ;
+    public final void rule__NetworkProtocol__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10943:1: ( rule__NetworkProtocol__Group__12__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10944:2: rule__NetworkProtocol__Group__12__Impl
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group__12__Impl_in_rule__NetworkProtocol__Group__1221930);
+            rule__NetworkProtocol__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__12"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10950:1: rule__NetworkProtocol__Group__12__Impl : ( '}' ) ;
+    public final void rule__NetworkProtocol__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10954:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10955:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10955:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10956:1: '}'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,29,FollowSets000.FOLLOW_29_in_rule__NetworkProtocol__Group__12__Impl21958); 
+             after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group__12__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10995:1: rule__NetworkProtocol__Group_4__0 : rule__NetworkProtocol__Group_4__0__Impl rule__NetworkProtocol__Group_4__1 ;
+    public final void rule__NetworkProtocol__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:10999:1: ( rule__NetworkProtocol__Group_4__0__Impl rule__NetworkProtocol__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11000:2: rule__NetworkProtocol__Group_4__0__Impl rule__NetworkProtocol__Group_4__1
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_4__0__Impl_in_rule__NetworkProtocol__Group_4__022015);
+            rule__NetworkProtocol__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_4__1_in_rule__NetworkProtocol__Group_4__022018);
+            rule__NetworkProtocol__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__0"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11007:1: rule__NetworkProtocol__Group_4__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__NetworkProtocol__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11011:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11012:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11012:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11013:1: 'alternativeNames'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); 
+            match(input,67,FollowSets000.FOLLOW_67_in_rule__NetworkProtocol__Group_4__0__Impl22046); 
+             after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11026:1: rule__NetworkProtocol__Group_4__1 : rule__NetworkProtocol__Group_4__1__Impl rule__NetworkProtocol__Group_4__2 ;
+    public final void rule__NetworkProtocol__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11030:1: ( rule__NetworkProtocol__Group_4__1__Impl rule__NetworkProtocol__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11031:2: rule__NetworkProtocol__Group_4__1__Impl rule__NetworkProtocol__Group_4__2
+            {
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_4__1__Impl_in_rule__NetworkProtocol__Group_4__122077);
+            rule__NetworkProtocol__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets000.FOLLOW_rule__NetworkProtocol__Group_4__2_in_rule__NetworkProtocol__Group_4__122080);
+            rule__NetworkProtocol__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__1"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11038:1: rule__NetworkProtocol__Group_4__1__Impl : ( '{' ) ;
+    public final void rule__NetworkProtocol__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11042:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11043:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11043:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11044:1: '{'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__NetworkProtocol__Group_4__1__Impl22108); 
+             after(grammarAccess.getNetworkProtocolAccess().getLeftCurlyBracketKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11057:1: rule__NetworkProtocol__Group_4__2 : rule__NetworkProtocol__Group_4__2__Impl rule__NetworkProtocol__Group_4__3 ;
+    public final void rule__NetworkProtocol__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11061:1: ( rule__NetworkProtocol__Group_4__2__Impl rule__NetworkProtocol__Group_4__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11062:2: rule__NetworkProtocol__Group_4__2__Impl rule__NetworkProtocol__Group_4__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4__2__Impl_in_rule__NetworkProtocol__Group_4__222139);
+            rule__NetworkProtocol__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4__3_in_rule__NetworkProtocol__Group_4__222142);
+            rule__NetworkProtocol__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__2"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11069:1: rule__NetworkProtocol__Group_4__2__Impl : ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 ) ) ;
+    public final void rule__NetworkProtocol__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11073:1: ( ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11074:1: ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11074:1: ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11075:1: ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11076:1: ( rule__NetworkProtocol__AlternativeNamesAssignment_4_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11076:2: rule__NetworkProtocol__AlternativeNamesAssignment_4_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__AlternativeNamesAssignment_4_2_in_rule__NetworkProtocol__Group_4__2__Impl22169);
+            rule__NetworkProtocol__AlternativeNamesAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11086:1: rule__NetworkProtocol__Group_4__3 : rule__NetworkProtocol__Group_4__3__Impl rule__NetworkProtocol__Group_4__4 ;
+    public final void rule__NetworkProtocol__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11090:1: ( rule__NetworkProtocol__Group_4__3__Impl rule__NetworkProtocol__Group_4__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11091:2: rule__NetworkProtocol__Group_4__3__Impl rule__NetworkProtocol__Group_4__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4__3__Impl_in_rule__NetworkProtocol__Group_4__322199);
+            rule__NetworkProtocol__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4__4_in_rule__NetworkProtocol__Group_4__322202);
+            rule__NetworkProtocol__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__3"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11098:1: rule__NetworkProtocol__Group_4__3__Impl : ( ( rule__NetworkProtocol__Group_4_3__0 )* ) ;
+    public final void rule__NetworkProtocol__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11102:1: ( ( ( rule__NetworkProtocol__Group_4_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11103:1: ( ( rule__NetworkProtocol__Group_4_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11103:1: ( ( rule__NetworkProtocol__Group_4_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11104:1: ( rule__NetworkProtocol__Group_4_3__0 )*
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11105:1: ( rule__NetworkProtocol__Group_4_3__0 )*
+            loop52:
+            do {
+                int alt52=2;
+                int LA52_0 = input.LA(1);
+
+                if ( (LA52_0==31) ) {
+                    alt52=1;
+                }
+
+
+                switch (alt52) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11105:2: rule__NetworkProtocol__Group_4_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4_3__0_in_rule__NetworkProtocol__Group_4__3__Impl22229);
+            	    rule__NetworkProtocol__Group_4_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop52;
+                }
+            } while (true);
+
+             after(grammarAccess.getNetworkProtocolAccess().getGroup_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11115:1: rule__NetworkProtocol__Group_4__4 : rule__NetworkProtocol__Group_4__4__Impl ;
+    public final void rule__NetworkProtocol__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11119:1: ( rule__NetworkProtocol__Group_4__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11120:2: rule__NetworkProtocol__Group_4__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4__4__Impl_in_rule__NetworkProtocol__Group_4__422260);
+            rule__NetworkProtocol__Group_4__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__4"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11126:1: rule__NetworkProtocol__Group_4__4__Impl : ( '}' ) ;
+    public final void rule__NetworkProtocol__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11130:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11131:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11131:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11132:1: '}'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__NetworkProtocol__Group_4__4__Impl22288); 
+             after(grammarAccess.getNetworkProtocolAccess().getRightCurlyBracketKeyword_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11155:1: rule__NetworkProtocol__Group_4_3__0 : rule__NetworkProtocol__Group_4_3__0__Impl rule__NetworkProtocol__Group_4_3__1 ;
+    public final void rule__NetworkProtocol__Group_4_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11159:1: ( rule__NetworkProtocol__Group_4_3__0__Impl rule__NetworkProtocol__Group_4_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11160:2: rule__NetworkProtocol__Group_4_3__0__Impl rule__NetworkProtocol__Group_4_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4_3__0__Impl_in_rule__NetworkProtocol__Group_4_3__022329);
+            rule__NetworkProtocol__Group_4_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4_3__1_in_rule__NetworkProtocol__Group_4_3__022332);
+            rule__NetworkProtocol__Group_4_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4_3__0"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11167:1: rule__NetworkProtocol__Group_4_3__0__Impl : ( ',' ) ;
+    public final void rule__NetworkProtocol__Group_4_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11171:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11172:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11172:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11173:1: ','
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__NetworkProtocol__Group_4_3__0__Impl22360); 
+             after(grammarAccess.getNetworkProtocolAccess().getCommaKeyword_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4_3__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11186:1: rule__NetworkProtocol__Group_4_3__1 : rule__NetworkProtocol__Group_4_3__1__Impl ;
+    public final void rule__NetworkProtocol__Group_4_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11190:1: ( rule__NetworkProtocol__Group_4_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11191:2: rule__NetworkProtocol__Group_4_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_4_3__1__Impl_in_rule__NetworkProtocol__Group_4_3__122391);
+            rule__NetworkProtocol__Group_4_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4_3__1"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_4_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11197:1: rule__NetworkProtocol__Group_4_3__1__Impl : ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 ) ) ;
+    public final void rule__NetworkProtocol__Group_4_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11201:1: ( ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11202:1: ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11202:1: ( ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11203:1: ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11204:1: ( rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11204:2: rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1_in_rule__NetworkProtocol__Group_4_3__1__Impl22418);
+            rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesAssignment_4_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_4_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_11__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11218:1: rule__NetworkProtocol__Group_11__0 : rule__NetworkProtocol__Group_11__0__Impl rule__NetworkProtocol__Group_11__1 ;
+    public final void rule__NetworkProtocol__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11222:1: ( rule__NetworkProtocol__Group_11__0__Impl rule__NetworkProtocol__Group_11__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11223:2: rule__NetworkProtocol__Group_11__0__Impl rule__NetworkProtocol__Group_11__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_11__0__Impl_in_rule__NetworkProtocol__Group_11__022452);
+            rule__NetworkProtocol__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_11__1_in_rule__NetworkProtocol__Group_11__022455);
+            rule__NetworkProtocol__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_11__0"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_11__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11230:1: rule__NetworkProtocol__Group_11__0__Impl : ( 'connectionless' ) ;
+    public final void rule__NetworkProtocol__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11234:1: ( ( 'connectionless' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11235:1: ( 'connectionless' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11235:1: ( 'connectionless' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11236:1: 'connectionless'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); 
+            match(input,86,FollowSets001.FOLLOW_86_in_rule__NetworkProtocol__Group_11__0__Impl22483); 
+             after(grammarAccess.getNetworkProtocolAccess().getConnectionlessKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_11__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11249:1: rule__NetworkProtocol__Group_11__1 : rule__NetworkProtocol__Group_11__1__Impl ;
+    public final void rule__NetworkProtocol__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11253:1: ( rule__NetworkProtocol__Group_11__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11254:2: rule__NetworkProtocol__Group_11__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__Group_11__1__Impl_in_rule__NetworkProtocol__Group_11__122514);
+            rule__NetworkProtocol__Group_11__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_11__1"
+
+
+    // $ANTLR start "rule__NetworkProtocol__Group_11__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11260:1: rule__NetworkProtocol__Group_11__1__Impl : ( ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 ) ) ;
+    public final void rule__NetworkProtocol__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11264:1: ( ( ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11265:1: ( ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11265:1: ( ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11266:1: ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11267:1: ( rule__NetworkProtocol__ConnectionlessAssignment_11_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11267:2: rule__NetworkProtocol__ConnectionlessAssignment_11_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__NetworkProtocol__ConnectionlessAssignment_11_1_in_rule__NetworkProtocol__Group_11__1__Impl22541);
+            rule__NetworkProtocol__ConnectionlessAssignment_11_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getConnectionlessAssignment_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__EInt__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11281:1: rule__EInt__Group__0 : rule__EInt__Group__0__Impl rule__EInt__Group__1 ;
+    public final void rule__EInt__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11285:1: ( rule__EInt__Group__0__Impl rule__EInt__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11286:2: rule__EInt__Group__0__Impl rule__EInt__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EInt__Group__0__Impl_in_rule__EInt__Group__022575);
+            rule__EInt__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EInt__Group__1_in_rule__EInt__Group__022578);
+            rule__EInt__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__0"
+
+
+    // $ANTLR start "rule__EInt__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11293:1: rule__EInt__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EInt__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11297:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11298:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11298:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11299:1: ( '-' )?
+            {
+             before(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11300:1: ( '-' )?
+            int alt53=2;
+            int LA53_0 = input.LA(1);
+
+            if ( (LA53_0==87) ) {
+                alt53=1;
+            }
+            switch (alt53) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11301:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__EInt__Group__0__Impl22607); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEIntAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EInt__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11312:1: rule__EInt__Group__1 : rule__EInt__Group__1__Impl ;
+    public final void rule__EInt__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11316:1: ( rule__EInt__Group__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11317:2: rule__EInt__Group__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EInt__Group__1__Impl_in_rule__EInt__Group__122640);
+            rule__EInt__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__1"
+
+
+    // $ANTLR start "rule__EInt__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11323:1: rule__EInt__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__EInt__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11327:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11328:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11328:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11329:1: RULE_INT
+            {
+             before(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EInt__Group__1__Impl22667); 
+             after(grammarAccess.getEIntAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EInt__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11344:1: rule__ConstantDoubleVariable__Group__0 : rule__ConstantDoubleVariable__Group__0__Impl rule__ConstantDoubleVariable__Group__1 ;
+    public final void rule__ConstantDoubleVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11348:1: ( rule__ConstantDoubleVariable__Group__0__Impl rule__ConstantDoubleVariable__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11349:2: rule__ConstantDoubleVariable__Group__0__Impl rule__ConstantDoubleVariable__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__0__Impl_in_rule__ConstantDoubleVariable__Group__022700);
+            rule__ConstantDoubleVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__1_in_rule__ConstantDoubleVariable__Group__022703);
+            rule__ConstantDoubleVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__0"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11356:1: rule__ConstantDoubleVariable__Group__0__Impl : ( 'ConstantDoubleVariable' ) ;
+    public final void rule__ConstantDoubleVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11360:1: ( ( 'ConstantDoubleVariable' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11361:1: ( 'ConstantDoubleVariable' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11361:1: ( 'ConstantDoubleVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11362:1: 'ConstantDoubleVariable'
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); 
+            match(input,88,FollowSets001.FOLLOW_88_in_rule__ConstantDoubleVariable__Group__0__Impl22731); 
+             after(grammarAccess.getConstantDoubleVariableAccess().getConstantDoubleVariableKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11375:1: rule__ConstantDoubleVariable__Group__1 : rule__ConstantDoubleVariable__Group__1__Impl rule__ConstantDoubleVariable__Group__2 ;
+    public final void rule__ConstantDoubleVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11379:1: ( rule__ConstantDoubleVariable__Group__1__Impl rule__ConstantDoubleVariable__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11380:2: rule__ConstantDoubleVariable__Group__1__Impl rule__ConstantDoubleVariable__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__1__Impl_in_rule__ConstantDoubleVariable__Group__122762);
+            rule__ConstantDoubleVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__2_in_rule__ConstantDoubleVariable__Group__122765);
+            rule__ConstantDoubleVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__1"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11387:1: rule__ConstantDoubleVariable__Group__1__Impl : ( '{' ) ;
+    public final void rule__ConstantDoubleVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11391:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11392:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11392:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11393:1: '{'
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ConstantDoubleVariable__Group__1__Impl22793); 
+             after(grammarAccess.getConstantDoubleVariableAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11406:1: rule__ConstantDoubleVariable__Group__2 : rule__ConstantDoubleVariable__Group__2__Impl rule__ConstantDoubleVariable__Group__3 ;
+    public final void rule__ConstantDoubleVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11410:1: ( rule__ConstantDoubleVariable__Group__2__Impl rule__ConstantDoubleVariable__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11411:2: rule__ConstantDoubleVariable__Group__2__Impl rule__ConstantDoubleVariable__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__2__Impl_in_rule__ConstantDoubleVariable__Group__222824);
+            rule__ConstantDoubleVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__3_in_rule__ConstantDoubleVariable__Group__222827);
+            rule__ConstantDoubleVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__2"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11418:1: rule__ConstantDoubleVariable__Group__2__Impl : ( 'value' ) ;
+    public final void rule__ConstantDoubleVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11422:1: ( ( 'value' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11423:1: ( 'value' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11423:1: ( 'value' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11424:1: 'value'
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); 
+            match(input,63,FollowSets001.FOLLOW_63_in_rule__ConstantDoubleVariable__Group__2__Impl22855); 
+             after(grammarAccess.getConstantDoubleVariableAccess().getValueKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11437:1: rule__ConstantDoubleVariable__Group__3 : rule__ConstantDoubleVariable__Group__3__Impl rule__ConstantDoubleVariable__Group__4 ;
+    public final void rule__ConstantDoubleVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11441:1: ( rule__ConstantDoubleVariable__Group__3__Impl rule__ConstantDoubleVariable__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11442:2: rule__ConstantDoubleVariable__Group__3__Impl rule__ConstantDoubleVariable__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__3__Impl_in_rule__ConstantDoubleVariable__Group__322886);
+            rule__ConstantDoubleVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__4_in_rule__ConstantDoubleVariable__Group__322889);
+            rule__ConstantDoubleVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__3"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11449:1: rule__ConstantDoubleVariable__Group__3__Impl : ( ( rule__ConstantDoubleVariable__ValueAssignment_3 ) ) ;
+    public final void rule__ConstantDoubleVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11453:1: ( ( ( rule__ConstantDoubleVariable__ValueAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11454:1: ( ( rule__ConstantDoubleVariable__ValueAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11454:1: ( ( rule__ConstantDoubleVariable__ValueAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11455:1: ( rule__ConstantDoubleVariable__ValueAssignment_3 )
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11456:1: ( rule__ConstantDoubleVariable__ValueAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11456:2: rule__ConstantDoubleVariable__ValueAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__ValueAssignment_3_in_rule__ConstantDoubleVariable__Group__3__Impl22916);
+            rule__ConstantDoubleVariable__ValueAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getValueAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11466:1: rule__ConstantDoubleVariable__Group__4 : rule__ConstantDoubleVariable__Group__4__Impl rule__ConstantDoubleVariable__Group__5 ;
+    public final void rule__ConstantDoubleVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11470:1: ( rule__ConstantDoubleVariable__Group__4__Impl rule__ConstantDoubleVariable__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11471:2: rule__ConstantDoubleVariable__Group__4__Impl rule__ConstantDoubleVariable__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__4__Impl_in_rule__ConstantDoubleVariable__Group__422946);
+            rule__ConstantDoubleVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__5_in_rule__ConstantDoubleVariable__Group__422949);
+            rule__ConstantDoubleVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__4"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11478:1: rule__ConstantDoubleVariable__Group__4__Impl : ( ( rule__ConstantDoubleVariable__Group_4__0 )? ) ;
+    public final void rule__ConstantDoubleVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11482:1: ( ( ( rule__ConstantDoubleVariable__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11483:1: ( ( rule__ConstantDoubleVariable__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11483:1: ( ( rule__ConstantDoubleVariable__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11484:1: ( rule__ConstantDoubleVariable__Group_4__0 )?
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11485:1: ( rule__ConstantDoubleVariable__Group_4__0 )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==89) ) {
+                alt54=1;
+            }
+            switch (alt54) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11485:2: rule__ConstantDoubleVariable__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group_4__0_in_rule__ConstantDoubleVariable__Group__4__Impl22976);
+                    rule__ConstantDoubleVariable__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11495:1: rule__ConstantDoubleVariable__Group__5 : rule__ConstantDoubleVariable__Group__5__Impl ;
+    public final void rule__ConstantDoubleVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11499:1: ( rule__ConstantDoubleVariable__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11500:2: rule__ConstantDoubleVariable__Group__5__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group__5__Impl_in_rule__ConstantDoubleVariable__Group__523007);
+            rule__ConstantDoubleVariable__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__5"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11506:1: rule__ConstantDoubleVariable__Group__5__Impl : ( '}' ) ;
+    public final void rule__ConstantDoubleVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11510:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11511:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11511:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11512:1: '}'
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ConstantDoubleVariable__Group__5__Impl23035); 
+             after(grammarAccess.getConstantDoubleVariableAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11537:1: rule__ConstantDoubleVariable__Group_4__0 : rule__ConstantDoubleVariable__Group_4__0__Impl rule__ConstantDoubleVariable__Group_4__1 ;
+    public final void rule__ConstantDoubleVariable__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11541:1: ( rule__ConstantDoubleVariable__Group_4__0__Impl rule__ConstantDoubleVariable__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11542:2: rule__ConstantDoubleVariable__Group_4__0__Impl rule__ConstantDoubleVariable__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group_4__0__Impl_in_rule__ConstantDoubleVariable__Group_4__023078);
+            rule__ConstantDoubleVariable__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group_4__1_in_rule__ConstantDoubleVariable__Group_4__023081);
+            rule__ConstantDoubleVariable__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group_4__0"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11549:1: rule__ConstantDoubleVariable__Group_4__0__Impl : ( 'unit' ) ;
+    public final void rule__ConstantDoubleVariable__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11553:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11554:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11554:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11555:1: 'unit'
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__ConstantDoubleVariable__Group_4__0__Impl23109); 
+             after(grammarAccess.getConstantDoubleVariableAccess().getUnitKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11568:1: rule__ConstantDoubleVariable__Group_4__1 : rule__ConstantDoubleVariable__Group_4__1__Impl ;
+    public final void rule__ConstantDoubleVariable__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11572:1: ( rule__ConstantDoubleVariable__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11573:2: rule__ConstantDoubleVariable__Group_4__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__Group_4__1__Impl_in_rule__ConstantDoubleVariable__Group_4__123140);
+            rule__ConstantDoubleVariable__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group_4__1"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11579:1: rule__ConstantDoubleVariable__Group_4__1__Impl : ( ( rule__ConstantDoubleVariable__UnitAssignment_4_1 ) ) ;
+    public final void rule__ConstantDoubleVariable__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11583:1: ( ( ( rule__ConstantDoubleVariable__UnitAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11584:1: ( ( rule__ConstantDoubleVariable__UnitAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11584:1: ( ( rule__ConstantDoubleVariable__UnitAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11585:1: ( rule__ConstantDoubleVariable__UnitAssignment_4_1 )
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11586:1: ( rule__ConstantDoubleVariable__UnitAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11586:2: rule__ConstantDoubleVariable__UnitAssignment_4_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantDoubleVariable__UnitAssignment_4_1_in_rule__ConstantDoubleVariable__Group_4__1__Impl23167);
+            rule__ConstantDoubleVariable__UnitAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getUnitAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11600:1: rule__ConstantLongVariable__Group__0 : rule__ConstantLongVariable__Group__0__Impl rule__ConstantLongVariable__Group__1 ;
+    public final void rule__ConstantLongVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11604:1: ( rule__ConstantLongVariable__Group__0__Impl rule__ConstantLongVariable__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11605:2: rule__ConstantLongVariable__Group__0__Impl rule__ConstantLongVariable__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__0__Impl_in_rule__ConstantLongVariable__Group__023201);
+            rule__ConstantLongVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__1_in_rule__ConstantLongVariable__Group__023204);
+            rule__ConstantLongVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__0"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11612:1: rule__ConstantLongVariable__Group__0__Impl : ( 'ConstantLongVariable' ) ;
+    public final void rule__ConstantLongVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11616:1: ( ( 'ConstantLongVariable' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11617:1: ( 'ConstantLongVariable' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11617:1: ( 'ConstantLongVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11618:1: 'ConstantLongVariable'
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); 
+            match(input,90,FollowSets001.FOLLOW_90_in_rule__ConstantLongVariable__Group__0__Impl23232); 
+             after(grammarAccess.getConstantLongVariableAccess().getConstantLongVariableKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11631:1: rule__ConstantLongVariable__Group__1 : rule__ConstantLongVariable__Group__1__Impl rule__ConstantLongVariable__Group__2 ;
+    public final void rule__ConstantLongVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11635:1: ( rule__ConstantLongVariable__Group__1__Impl rule__ConstantLongVariable__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11636:2: rule__ConstantLongVariable__Group__1__Impl rule__ConstantLongVariable__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__1__Impl_in_rule__ConstantLongVariable__Group__123263);
+            rule__ConstantLongVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__2_in_rule__ConstantLongVariable__Group__123266);
+            rule__ConstantLongVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__1"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11643:1: rule__ConstantLongVariable__Group__1__Impl : ( '{' ) ;
+    public final void rule__ConstantLongVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11647:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11648:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11648:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11649:1: '{'
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ConstantLongVariable__Group__1__Impl23294); 
+             after(grammarAccess.getConstantLongVariableAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11662:1: rule__ConstantLongVariable__Group__2 : rule__ConstantLongVariable__Group__2__Impl rule__ConstantLongVariable__Group__3 ;
+    public final void rule__ConstantLongVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11666:1: ( rule__ConstantLongVariable__Group__2__Impl rule__ConstantLongVariable__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11667:2: rule__ConstantLongVariable__Group__2__Impl rule__ConstantLongVariable__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__2__Impl_in_rule__ConstantLongVariable__Group__223325);
+            rule__ConstantLongVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__3_in_rule__ConstantLongVariable__Group__223328);
+            rule__ConstantLongVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__2"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11674:1: rule__ConstantLongVariable__Group__2__Impl : ( 'value' ) ;
+    public final void rule__ConstantLongVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11678:1: ( ( 'value' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11679:1: ( 'value' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11679:1: ( 'value' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11680:1: 'value'
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); 
+            match(input,63,FollowSets001.FOLLOW_63_in_rule__ConstantLongVariable__Group__2__Impl23356); 
+             after(grammarAccess.getConstantLongVariableAccess().getValueKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11693:1: rule__ConstantLongVariable__Group__3 : rule__ConstantLongVariable__Group__3__Impl rule__ConstantLongVariable__Group__4 ;
+    public final void rule__ConstantLongVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11697:1: ( rule__ConstantLongVariable__Group__3__Impl rule__ConstantLongVariable__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11698:2: rule__ConstantLongVariable__Group__3__Impl rule__ConstantLongVariable__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__3__Impl_in_rule__ConstantLongVariable__Group__323387);
+            rule__ConstantLongVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__4_in_rule__ConstantLongVariable__Group__323390);
+            rule__ConstantLongVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__3"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11705:1: rule__ConstantLongVariable__Group__3__Impl : ( ( rule__ConstantLongVariable__ValueAssignment_3 ) ) ;
+    public final void rule__ConstantLongVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11709:1: ( ( ( rule__ConstantLongVariable__ValueAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11710:1: ( ( rule__ConstantLongVariable__ValueAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11710:1: ( ( rule__ConstantLongVariable__ValueAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11711:1: ( rule__ConstantLongVariable__ValueAssignment_3 )
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11712:1: ( rule__ConstantLongVariable__ValueAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11712:2: rule__ConstantLongVariable__ValueAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__ValueAssignment_3_in_rule__ConstantLongVariable__Group__3__Impl23417);
+            rule__ConstantLongVariable__ValueAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantLongVariableAccess().getValueAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11722:1: rule__ConstantLongVariable__Group__4 : rule__ConstantLongVariable__Group__4__Impl rule__ConstantLongVariable__Group__5 ;
+    public final void rule__ConstantLongVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11726:1: ( rule__ConstantLongVariable__Group__4__Impl rule__ConstantLongVariable__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11727:2: rule__ConstantLongVariable__Group__4__Impl rule__ConstantLongVariable__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__4__Impl_in_rule__ConstantLongVariable__Group__423447);
+            rule__ConstantLongVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__5_in_rule__ConstantLongVariable__Group__423450);
+            rule__ConstantLongVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__4"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11734:1: rule__ConstantLongVariable__Group__4__Impl : ( ( rule__ConstantLongVariable__Group_4__0 )? ) ;
+    public final void rule__ConstantLongVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11738:1: ( ( ( rule__ConstantLongVariable__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11739:1: ( ( rule__ConstantLongVariable__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11739:1: ( ( rule__ConstantLongVariable__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11740:1: ( rule__ConstantLongVariable__Group_4__0 )?
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11741:1: ( rule__ConstantLongVariable__Group_4__0 )?
+            int alt55=2;
+            int LA55_0 = input.LA(1);
+
+            if ( (LA55_0==89) ) {
+                alt55=1;
+            }
+            switch (alt55) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11741:2: rule__ConstantLongVariable__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group_4__0_in_rule__ConstantLongVariable__Group__4__Impl23477);
+                    rule__ConstantLongVariable__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getConstantLongVariableAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11751:1: rule__ConstantLongVariable__Group__5 : rule__ConstantLongVariable__Group__5__Impl ;
+    public final void rule__ConstantLongVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11755:1: ( rule__ConstantLongVariable__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11756:2: rule__ConstantLongVariable__Group__5__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group__5__Impl_in_rule__ConstantLongVariable__Group__523508);
+            rule__ConstantLongVariable__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__5"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11762:1: rule__ConstantLongVariable__Group__5__Impl : ( '}' ) ;
+    public final void rule__ConstantLongVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11766:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11767:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11767:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11768:1: '}'
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ConstantLongVariable__Group__5__Impl23536); 
+             after(grammarAccess.getConstantLongVariableAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11793:1: rule__ConstantLongVariable__Group_4__0 : rule__ConstantLongVariable__Group_4__0__Impl rule__ConstantLongVariable__Group_4__1 ;
+    public final void rule__ConstantLongVariable__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11797:1: ( rule__ConstantLongVariable__Group_4__0__Impl rule__ConstantLongVariable__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11798:2: rule__ConstantLongVariable__Group_4__0__Impl rule__ConstantLongVariable__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group_4__0__Impl_in_rule__ConstantLongVariable__Group_4__023579);
+            rule__ConstantLongVariable__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group_4__1_in_rule__ConstantLongVariable__Group_4__023582);
+            rule__ConstantLongVariable__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group_4__0"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11805:1: rule__ConstantLongVariable__Group_4__0__Impl : ( 'unit' ) ;
+    public final void rule__ConstantLongVariable__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11809:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11810:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11810:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11811:1: 'unit'
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__ConstantLongVariable__Group_4__0__Impl23610); 
+             after(grammarAccess.getConstantLongVariableAccess().getUnitKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11824:1: rule__ConstantLongVariable__Group_4__1 : rule__ConstantLongVariable__Group_4__1__Impl ;
+    public final void rule__ConstantLongVariable__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11828:1: ( rule__ConstantLongVariable__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11829:2: rule__ConstantLongVariable__Group_4__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__Group_4__1__Impl_in_rule__ConstantLongVariable__Group_4__123641);
+            rule__ConstantLongVariable__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group_4__1"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11835:1: rule__ConstantLongVariable__Group_4__1__Impl : ( ( rule__ConstantLongVariable__UnitAssignment_4_1 ) ) ;
+    public final void rule__ConstantLongVariable__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11839:1: ( ( ( rule__ConstantLongVariable__UnitAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11840:1: ( ( rule__ConstantLongVariable__UnitAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11840:1: ( ( rule__ConstantLongVariable__UnitAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11841:1: ( rule__ConstantLongVariable__UnitAssignment_4_1 )
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11842:1: ( rule__ConstantLongVariable__UnitAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11842:2: rule__ConstantLongVariable__UnitAssignment_4_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ConstantLongVariable__UnitAssignment_4_1_in_rule__ConstantLongVariable__Group_4__1__Impl23668);
+            rule__ConstantLongVariable__UnitAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantLongVariableAccess().getUnitAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11856:1: rule__RandomVariable__Group__0 : rule__RandomVariable__Group__0__Impl rule__RandomVariable__Group__1 ;
+    public final void rule__RandomVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11860:1: ( rule__RandomVariable__Group__0__Impl rule__RandomVariable__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11861:2: rule__RandomVariable__Group__0__Impl rule__RandomVariable__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__0__Impl_in_rule__RandomVariable__Group__023702);
+            rule__RandomVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__1_in_rule__RandomVariable__Group__023705);
+            rule__RandomVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__0"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11868:1: rule__RandomVariable__Group__0__Impl : ( 'RandomVariable' ) ;
+    public final void rule__RandomVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11872:1: ( ( 'RandomVariable' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11873:1: ( 'RandomVariable' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11873:1: ( 'RandomVariable' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11874:1: 'RandomVariable'
+            {
+             before(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); 
+            match(input,91,FollowSets001.FOLLOW_91_in_rule__RandomVariable__Group__0__Impl23733); 
+             after(grammarAccess.getRandomVariableAccess().getRandomVariableKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11887:1: rule__RandomVariable__Group__1 : rule__RandomVariable__Group__1__Impl rule__RandomVariable__Group__2 ;
+    public final void rule__RandomVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11891:1: ( rule__RandomVariable__Group__1__Impl rule__RandomVariable__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11892:2: rule__RandomVariable__Group__1__Impl rule__RandomVariable__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__1__Impl_in_rule__RandomVariable__Group__123764);
+            rule__RandomVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__2_in_rule__RandomVariable__Group__123767);
+            rule__RandomVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__1"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11899:1: rule__RandomVariable__Group__1__Impl : ( '{' ) ;
+    public final void rule__RandomVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11903:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11904:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11904:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11905:1: '{'
+            {
+             before(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__RandomVariable__Group__1__Impl23795); 
+             after(grammarAccess.getRandomVariableAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11918:1: rule__RandomVariable__Group__2 : rule__RandomVariable__Group__2__Impl rule__RandomVariable__Group__3 ;
+    public final void rule__RandomVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11922:1: ( rule__RandomVariable__Group__2__Impl rule__RandomVariable__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11923:2: rule__RandomVariable__Group__2__Impl rule__RandomVariable__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__2__Impl_in_rule__RandomVariable__Group__223826);
+            rule__RandomVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__3_in_rule__RandomVariable__Group__223829);
+            rule__RandomVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__2"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11930:1: rule__RandomVariable__Group__2__Impl : ( ( rule__RandomVariable__Group_2__0 )? ) ;
+    public final void rule__RandomVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11934:1: ( ( ( rule__RandomVariable__Group_2__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11935:1: ( ( rule__RandomVariable__Group_2__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11935:1: ( ( rule__RandomVariable__Group_2__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11936:1: ( rule__RandomVariable__Group_2__0 )?
+            {
+             before(grammarAccess.getRandomVariableAccess().getGroup_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11937:1: ( rule__RandomVariable__Group_2__0 )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==89) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11937:2: rule__RandomVariable__Group_2__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group_2__0_in_rule__RandomVariable__Group__2__Impl23856);
+                    rule__RandomVariable__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRandomVariableAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11947:1: rule__RandomVariable__Group__3 : rule__RandomVariable__Group__3__Impl rule__RandomVariable__Group__4 ;
+    public final void rule__RandomVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11951:1: ( rule__RandomVariable__Group__3__Impl rule__RandomVariable__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11952:2: rule__RandomVariable__Group__3__Impl rule__RandomVariable__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__3__Impl_in_rule__RandomVariable__Group__323887);
+            rule__RandomVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__4_in_rule__RandomVariable__Group__323890);
+            rule__RandomVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__3"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11959:1: rule__RandomVariable__Group__3__Impl : ( 'cdf' ) ;
+    public final void rule__RandomVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11963:1: ( ( 'cdf' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11964:1: ( 'cdf' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11964:1: ( 'cdf' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11965:1: 'cdf'
+            {
+             before(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); 
+            match(input,92,FollowSets001.FOLLOW_92_in_rule__RandomVariable__Group__3__Impl23918); 
+             after(grammarAccess.getRandomVariableAccess().getCdfKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11978:1: rule__RandomVariable__Group__4 : rule__RandomVariable__Group__4__Impl rule__RandomVariable__Group__5 ;
+    public final void rule__RandomVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11982:1: ( rule__RandomVariable__Group__4__Impl rule__RandomVariable__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11983:2: rule__RandomVariable__Group__4__Impl rule__RandomVariable__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__4__Impl_in_rule__RandomVariable__Group__423949);
+            rule__RandomVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__5_in_rule__RandomVariable__Group__423952);
+            rule__RandomVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__4"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11990:1: rule__RandomVariable__Group__4__Impl : ( ( rule__RandomVariable__CdfAssignment_4 ) ) ;
+    public final void rule__RandomVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11994:1: ( ( ( rule__RandomVariable__CdfAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11995:1: ( ( rule__RandomVariable__CdfAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11995:1: ( ( rule__RandomVariable__CdfAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11996:1: ( rule__RandomVariable__CdfAssignment_4 )
+            {
+             before(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11997:1: ( rule__RandomVariable__CdfAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:11997:2: rule__RandomVariable__CdfAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__CdfAssignment_4_in_rule__RandomVariable__Group__4__Impl23979);
+            rule__RandomVariable__CdfAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRandomVariableAccess().getCdfAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12007:1: rule__RandomVariable__Group__5 : rule__RandomVariable__Group__5__Impl ;
+    public final void rule__RandomVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12011:1: ( rule__RandomVariable__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12012:2: rule__RandomVariable__Group__5__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group__5__Impl_in_rule__RandomVariable__Group__524009);
+            rule__RandomVariable__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__5"
+
+
+    // $ANTLR start "rule__RandomVariable__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12018:1: rule__RandomVariable__Group__5__Impl : ( '}' ) ;
+    public final void rule__RandomVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12022:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12023:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12023:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12024:1: '}'
+            {
+             before(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__RandomVariable__Group__5__Impl24037); 
+             after(grammarAccess.getRandomVariableAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group_2__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12049:1: rule__RandomVariable__Group_2__0 : rule__RandomVariable__Group_2__0__Impl rule__RandomVariable__Group_2__1 ;
+    public final void rule__RandomVariable__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12053:1: ( rule__RandomVariable__Group_2__0__Impl rule__RandomVariable__Group_2__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12054:2: rule__RandomVariable__Group_2__0__Impl rule__RandomVariable__Group_2__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group_2__0__Impl_in_rule__RandomVariable__Group_2__024080);
+            rule__RandomVariable__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group_2__1_in_rule__RandomVariable__Group_2__024083);
+            rule__RandomVariable__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group_2__0"
+
+
+    // $ANTLR start "rule__RandomVariable__Group_2__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12061:1: rule__RandomVariable__Group_2__0__Impl : ( 'unit' ) ;
+    public final void rule__RandomVariable__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12065:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12066:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12066:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12067:1: 'unit'
+            {
+             before(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__RandomVariable__Group_2__0__Impl24111); 
+             after(grammarAccess.getRandomVariableAccess().getUnitKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__RandomVariable__Group_2__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12080:1: rule__RandomVariable__Group_2__1 : rule__RandomVariable__Group_2__1__Impl ;
+    public final void rule__RandomVariable__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12084:1: ( rule__RandomVariable__Group_2__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12085:2: rule__RandomVariable__Group_2__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__Group_2__1__Impl_in_rule__RandomVariable__Group_2__124142);
+            rule__RandomVariable__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group_2__1"
+
+
+    // $ANTLR start "rule__RandomVariable__Group_2__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12091:1: rule__RandomVariable__Group_2__1__Impl : ( ( rule__RandomVariable__UnitAssignment_2_1 ) ) ;
+    public final void rule__RandomVariable__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12095:1: ( ( ( rule__RandomVariable__UnitAssignment_2_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12096:1: ( ( rule__RandomVariable__UnitAssignment_2_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12096:1: ( ( rule__RandomVariable__UnitAssignment_2_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12097:1: ( rule__RandomVariable__UnitAssignment_2_1 )
+            {
+             before(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12098:1: ( rule__RandomVariable__UnitAssignment_2_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12098:2: rule__RandomVariable__UnitAssignment_2_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RandomVariable__UnitAssignment_2_1_in_rule__RandomVariable__Group_2__1__Impl24169);
+            rule__RandomVariable__UnitAssignment_2_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRandomVariableAccess().getUnitAssignment_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12112:1: rule__ContinuousFunction__Group__0 : rule__ContinuousFunction__Group__0__Impl rule__ContinuousFunction__Group__1 ;
+    public final void rule__ContinuousFunction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12116:1: ( rule__ContinuousFunction__Group__0__Impl rule__ContinuousFunction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12117:2: rule__ContinuousFunction__Group__0__Impl rule__ContinuousFunction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__0__Impl_in_rule__ContinuousFunction__Group__024203);
+            rule__ContinuousFunction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__1_in_rule__ContinuousFunction__Group__024206);
+            rule__ContinuousFunction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__0"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12124:1: rule__ContinuousFunction__Group__0__Impl : ( 'ContinuousFunction' ) ;
+    public final void rule__ContinuousFunction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12128:1: ( ( 'ContinuousFunction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12129:1: ( 'ContinuousFunction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12129:1: ( 'ContinuousFunction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12130:1: 'ContinuousFunction'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); 
+            match(input,93,FollowSets001.FOLLOW_93_in_rule__ContinuousFunction__Group__0__Impl24234); 
+             after(grammarAccess.getContinuousFunctionAccess().getContinuousFunctionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12143:1: rule__ContinuousFunction__Group__1 : rule__ContinuousFunction__Group__1__Impl rule__ContinuousFunction__Group__2 ;
+    public final void rule__ContinuousFunction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12147:1: ( rule__ContinuousFunction__Group__1__Impl rule__ContinuousFunction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12148:2: rule__ContinuousFunction__Group__1__Impl rule__ContinuousFunction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__1__Impl_in_rule__ContinuousFunction__Group__124265);
+            rule__ContinuousFunction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__2_in_rule__ContinuousFunction__Group__124268);
+            rule__ContinuousFunction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__1"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12155:1: rule__ContinuousFunction__Group__1__Impl : ( '{' ) ;
+    public final void rule__ContinuousFunction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12159:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12160:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12160:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12161:1: '{'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ContinuousFunction__Group__1__Impl24296); 
+             after(grammarAccess.getContinuousFunctionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12174:1: rule__ContinuousFunction__Group__2 : rule__ContinuousFunction__Group__2__Impl rule__ContinuousFunction__Group__3 ;
+    public final void rule__ContinuousFunction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12178:1: ( rule__ContinuousFunction__Group__2__Impl rule__ContinuousFunction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12179:2: rule__ContinuousFunction__Group__2__Impl rule__ContinuousFunction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__2__Impl_in_rule__ContinuousFunction__Group__224327);
+            rule__ContinuousFunction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__3_in_rule__ContinuousFunction__Group__224330);
+            rule__ContinuousFunction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__2"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12186:1: rule__ContinuousFunction__Group__2__Impl : ( 'numArgs' ) ;
+    public final void rule__ContinuousFunction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12190:1: ( ( 'numArgs' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12191:1: ( 'numArgs' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12191:1: ( 'numArgs' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12192:1: 'numArgs'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); 
+            match(input,94,FollowSets001.FOLLOW_94_in_rule__ContinuousFunction__Group__2__Impl24358); 
+             after(grammarAccess.getContinuousFunctionAccess().getNumArgsKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12205:1: rule__ContinuousFunction__Group__3 : rule__ContinuousFunction__Group__3__Impl rule__ContinuousFunction__Group__4 ;
+    public final void rule__ContinuousFunction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12209:1: ( rule__ContinuousFunction__Group__3__Impl rule__ContinuousFunction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12210:2: rule__ContinuousFunction__Group__3__Impl rule__ContinuousFunction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__3__Impl_in_rule__ContinuousFunction__Group__324389);
+            rule__ContinuousFunction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__4_in_rule__ContinuousFunction__Group__324392);
+            rule__ContinuousFunction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__3"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12217:1: rule__ContinuousFunction__Group__3__Impl : ( ( rule__ContinuousFunction__NumArgsAssignment_3 ) ) ;
+    public final void rule__ContinuousFunction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12221:1: ( ( ( rule__ContinuousFunction__NumArgsAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12222:1: ( ( rule__ContinuousFunction__NumArgsAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12222:1: ( ( rule__ContinuousFunction__NumArgsAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12223:1: ( rule__ContinuousFunction__NumArgsAssignment_3 )
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12224:1: ( rule__ContinuousFunction__NumArgsAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12224:2: rule__ContinuousFunction__NumArgsAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__NumArgsAssignment_3_in_rule__ContinuousFunction__Group__3__Impl24419);
+            rule__ContinuousFunction__NumArgsAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getContinuousFunctionAccess().getNumArgsAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12234:1: rule__ContinuousFunction__Group__4 : rule__ContinuousFunction__Group__4__Impl rule__ContinuousFunction__Group__5 ;
+    public final void rule__ContinuousFunction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12238:1: ( rule__ContinuousFunction__Group__4__Impl rule__ContinuousFunction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12239:2: rule__ContinuousFunction__Group__4__Impl rule__ContinuousFunction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__4__Impl_in_rule__ContinuousFunction__Group__424449);
+            rule__ContinuousFunction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__5_in_rule__ContinuousFunction__Group__424452);
+            rule__ContinuousFunction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__4"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12246:1: rule__ContinuousFunction__Group__4__Impl : ( 'equation' ) ;
+    public final void rule__ContinuousFunction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12250:1: ( ( 'equation' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12251:1: ( 'equation' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12251:1: ( 'equation' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12252:1: 'equation'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); 
+            match(input,95,FollowSets001.FOLLOW_95_in_rule__ContinuousFunction__Group__4__Impl24480); 
+             after(grammarAccess.getContinuousFunctionAccess().getEquationKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12265:1: rule__ContinuousFunction__Group__5 : rule__ContinuousFunction__Group__5__Impl rule__ContinuousFunction__Group__6 ;
+    public final void rule__ContinuousFunction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12269:1: ( rule__ContinuousFunction__Group__5__Impl rule__ContinuousFunction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12270:2: rule__ContinuousFunction__Group__5__Impl rule__ContinuousFunction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__5__Impl_in_rule__ContinuousFunction__Group__524511);
+            rule__ContinuousFunction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__6_in_rule__ContinuousFunction__Group__524514);
+            rule__ContinuousFunction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__5"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12277:1: rule__ContinuousFunction__Group__5__Impl : ( ( rule__ContinuousFunction__EquationAssignment_5 ) ) ;
+    public final void rule__ContinuousFunction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12281:1: ( ( ( rule__ContinuousFunction__EquationAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12282:1: ( ( rule__ContinuousFunction__EquationAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12282:1: ( ( rule__ContinuousFunction__EquationAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12283:1: ( rule__ContinuousFunction__EquationAssignment_5 )
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12284:1: ( rule__ContinuousFunction__EquationAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12284:2: rule__ContinuousFunction__EquationAssignment_5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__EquationAssignment_5_in_rule__ContinuousFunction__Group__5__Impl24541);
+            rule__ContinuousFunction__EquationAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getContinuousFunctionAccess().getEquationAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12294:1: rule__ContinuousFunction__Group__6 : rule__ContinuousFunction__Group__6__Impl rule__ContinuousFunction__Group__7 ;
+    public final void rule__ContinuousFunction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12298:1: ( rule__ContinuousFunction__Group__6__Impl rule__ContinuousFunction__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12299:2: rule__ContinuousFunction__Group__6__Impl rule__ContinuousFunction__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__6__Impl_in_rule__ContinuousFunction__Group__624571);
+            rule__ContinuousFunction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__7_in_rule__ContinuousFunction__Group__624574);
+            rule__ContinuousFunction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__6"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12306:1: rule__ContinuousFunction__Group__6__Impl : ( ( rule__ContinuousFunction__Group_6__0 )? ) ;
+    public final void rule__ContinuousFunction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12310:1: ( ( ( rule__ContinuousFunction__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12311:1: ( ( rule__ContinuousFunction__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12311:1: ( ( rule__ContinuousFunction__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12312:1: ( rule__ContinuousFunction__Group_6__0 )?
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12313:1: ( rule__ContinuousFunction__Group_6__0 )?
+            int alt57=2;
+            int LA57_0 = input.LA(1);
+
+            if ( (LA57_0==89) ) {
+                alt57=1;
+            }
+            switch (alt57) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12313:2: rule__ContinuousFunction__Group_6__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group_6__0_in_rule__ContinuousFunction__Group__6__Impl24601);
+                    rule__ContinuousFunction__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getContinuousFunctionAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12323:1: rule__ContinuousFunction__Group__7 : rule__ContinuousFunction__Group__7__Impl ;
+    public final void rule__ContinuousFunction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12327:1: ( rule__ContinuousFunction__Group__7__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12328:2: rule__ContinuousFunction__Group__7__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group__7__Impl_in_rule__ContinuousFunction__Group__724632);
+            rule__ContinuousFunction__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__7"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12334:1: rule__ContinuousFunction__Group__7__Impl : ( '}' ) ;
+    public final void rule__ContinuousFunction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12338:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12339:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12339:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12340:1: '}'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ContinuousFunction__Group__7__Impl24660); 
+             after(grammarAccess.getContinuousFunctionAccess().getRightCurlyBracketKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12369:1: rule__ContinuousFunction__Group_6__0 : rule__ContinuousFunction__Group_6__0__Impl rule__ContinuousFunction__Group_6__1 ;
+    public final void rule__ContinuousFunction__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12373:1: ( rule__ContinuousFunction__Group_6__0__Impl rule__ContinuousFunction__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12374:2: rule__ContinuousFunction__Group_6__0__Impl rule__ContinuousFunction__Group_6__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group_6__0__Impl_in_rule__ContinuousFunction__Group_6__024707);
+            rule__ContinuousFunction__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group_6__1_in_rule__ContinuousFunction__Group_6__024710);
+            rule__ContinuousFunction__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group_6__0"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12381:1: rule__ContinuousFunction__Group_6__0__Impl : ( 'unit' ) ;
+    public final void rule__ContinuousFunction__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12385:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12386:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12386:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12387:1: 'unit'
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__ContinuousFunction__Group_6__0__Impl24738); 
+             after(grammarAccess.getContinuousFunctionAccess().getUnitKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12400:1: rule__ContinuousFunction__Group_6__1 : rule__ContinuousFunction__Group_6__1__Impl ;
+    public final void rule__ContinuousFunction__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12404:1: ( rule__ContinuousFunction__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12405:2: rule__ContinuousFunction__Group_6__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__Group_6__1__Impl_in_rule__ContinuousFunction__Group_6__124769);
+            rule__ContinuousFunction__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group_6__1"
+
+
+    // $ANTLR start "rule__ContinuousFunction__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12411:1: rule__ContinuousFunction__Group_6__1__Impl : ( ( rule__ContinuousFunction__UnitAssignment_6_1 ) ) ;
+    public final void rule__ContinuousFunction__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12415:1: ( ( ( rule__ContinuousFunction__UnitAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12416:1: ( ( rule__ContinuousFunction__UnitAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12416:1: ( ( rule__ContinuousFunction__UnitAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12417:1: ( rule__ContinuousFunction__UnitAssignment_6_1 )
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12418:1: ( rule__ContinuousFunction__UnitAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12418:2: rule__ContinuousFunction__UnitAssignment_6_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ContinuousFunction__UnitAssignment_6_1_in_rule__ContinuousFunction__Group_6__1__Impl24796);
+            rule__ContinuousFunction__UnitAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getContinuousFunctionAccess().getUnitAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12432:1: rule__DiscreteFunction__Group__0 : rule__DiscreteFunction__Group__0__Impl rule__DiscreteFunction__Group__1 ;
+    public final void rule__DiscreteFunction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12436:1: ( rule__DiscreteFunction__Group__0__Impl rule__DiscreteFunction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12437:2: rule__DiscreteFunction__Group__0__Impl rule__DiscreteFunction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__0__Impl_in_rule__DiscreteFunction__Group__024830);
+            rule__DiscreteFunction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__1_in_rule__DiscreteFunction__Group__024833);
+            rule__DiscreteFunction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__0"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12444:1: rule__DiscreteFunction__Group__0__Impl : ( 'DiscreteFunction' ) ;
+    public final void rule__DiscreteFunction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12448:1: ( ( 'DiscreteFunction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12449:1: ( 'DiscreteFunction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12449:1: ( 'DiscreteFunction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12450:1: 'DiscreteFunction'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); 
+            match(input,96,FollowSets001.FOLLOW_96_in_rule__DiscreteFunction__Group__0__Impl24861); 
+             after(grammarAccess.getDiscreteFunctionAccess().getDiscreteFunctionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12463:1: rule__DiscreteFunction__Group__1 : rule__DiscreteFunction__Group__1__Impl rule__DiscreteFunction__Group__2 ;
+    public final void rule__DiscreteFunction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12467:1: ( rule__DiscreteFunction__Group__1__Impl rule__DiscreteFunction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12468:2: rule__DiscreteFunction__Group__1__Impl rule__DiscreteFunction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__1__Impl_in_rule__DiscreteFunction__Group__124892);
+            rule__DiscreteFunction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__2_in_rule__DiscreteFunction__Group__124895);
+            rule__DiscreteFunction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12475:1: rule__DiscreteFunction__Group__1__Impl : ( '{' ) ;
+    public final void rule__DiscreteFunction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12479:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12480:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12480:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12481:1: '{'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__DiscreteFunction__Group__1__Impl24923); 
+             after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12494:1: rule__DiscreteFunction__Group__2 : rule__DiscreteFunction__Group__2__Impl rule__DiscreteFunction__Group__3 ;
+    public final void rule__DiscreteFunction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12498:1: ( rule__DiscreteFunction__Group__2__Impl rule__DiscreteFunction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12499:2: rule__DiscreteFunction__Group__2__Impl rule__DiscreteFunction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__2__Impl_in_rule__DiscreteFunction__Group__224954);
+            rule__DiscreteFunction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__3_in_rule__DiscreteFunction__Group__224957);
+            rule__DiscreteFunction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__2"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12506:1: rule__DiscreteFunction__Group__2__Impl : ( 'numArgs' ) ;
+    public final void rule__DiscreteFunction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12510:1: ( ( 'numArgs' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12511:1: ( 'numArgs' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12511:1: ( 'numArgs' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12512:1: 'numArgs'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); 
+            match(input,94,FollowSets001.FOLLOW_94_in_rule__DiscreteFunction__Group__2__Impl24985); 
+             after(grammarAccess.getDiscreteFunctionAccess().getNumArgsKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12525:1: rule__DiscreteFunction__Group__3 : rule__DiscreteFunction__Group__3__Impl rule__DiscreteFunction__Group__4 ;
+    public final void rule__DiscreteFunction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12529:1: ( rule__DiscreteFunction__Group__3__Impl rule__DiscreteFunction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12530:2: rule__DiscreteFunction__Group__3__Impl rule__DiscreteFunction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__3__Impl_in_rule__DiscreteFunction__Group__325016);
+            rule__DiscreteFunction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__4_in_rule__DiscreteFunction__Group__325019);
+            rule__DiscreteFunction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__3"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12537:1: rule__DiscreteFunction__Group__3__Impl : ( ( rule__DiscreteFunction__NumArgsAssignment_3 ) ) ;
+    public final void rule__DiscreteFunction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12541:1: ( ( ( rule__DiscreteFunction__NumArgsAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12542:1: ( ( rule__DiscreteFunction__NumArgsAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12542:1: ( ( rule__DiscreteFunction__NumArgsAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12543:1: ( rule__DiscreteFunction__NumArgsAssignment_3 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12544:1: ( rule__DiscreteFunction__NumArgsAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12544:2: rule__DiscreteFunction__NumArgsAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__NumArgsAssignment_3_in_rule__DiscreteFunction__Group__3__Impl25046);
+            rule__DiscreteFunction__NumArgsAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getNumArgsAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12554:1: rule__DiscreteFunction__Group__4 : rule__DiscreteFunction__Group__4__Impl rule__DiscreteFunction__Group__5 ;
+    public final void rule__DiscreteFunction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12558:1: ( rule__DiscreteFunction__Group__4__Impl rule__DiscreteFunction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12559:2: rule__DiscreteFunction__Group__4__Impl rule__DiscreteFunction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__4__Impl_in_rule__DiscreteFunction__Group__425076);
+            rule__DiscreteFunction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__5_in_rule__DiscreteFunction__Group__425079);
+            rule__DiscreteFunction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__4"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12566:1: rule__DiscreteFunction__Group__4__Impl : ( ( rule__DiscreteFunction__Group_4__0 )? ) ;
+    public final void rule__DiscreteFunction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12570:1: ( ( ( rule__DiscreteFunction__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12571:1: ( ( rule__DiscreteFunction__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12571:1: ( ( rule__DiscreteFunction__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12572:1: ( rule__DiscreteFunction__Group_4__0 )?
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12573:1: ( rule__DiscreteFunction__Group_4__0 )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
+
+            if ( (LA58_0==89) ) {
+                alt58=1;
+            }
+            switch (alt58) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12573:2: rule__DiscreteFunction__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_4__0_in_rule__DiscreteFunction__Group__4__Impl25106);
+                    rule__DiscreteFunction__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12583:1: rule__DiscreteFunction__Group__5 : rule__DiscreteFunction__Group__5__Impl rule__DiscreteFunction__Group__6 ;
+    public final void rule__DiscreteFunction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12587:1: ( rule__DiscreteFunction__Group__5__Impl rule__DiscreteFunction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12588:2: rule__DiscreteFunction__Group__5__Impl rule__DiscreteFunction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__5__Impl_in_rule__DiscreteFunction__Group__525137);
+            rule__DiscreteFunction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__6_in_rule__DiscreteFunction__Group__525140);
+            rule__DiscreteFunction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__5"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12595:1: rule__DiscreteFunction__Group__5__Impl : ( 'x' ) ;
+    public final void rule__DiscreteFunction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12599:1: ( ( 'x' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12600:1: ( 'x' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12600:1: ( 'x' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12601:1: 'x'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); 
+            match(input,97,FollowSets001.FOLLOW_97_in_rule__DiscreteFunction__Group__5__Impl25168); 
+             after(grammarAccess.getDiscreteFunctionAccess().getXKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12614:1: rule__DiscreteFunction__Group__6 : rule__DiscreteFunction__Group__6__Impl rule__DiscreteFunction__Group__7 ;
+    public final void rule__DiscreteFunction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12618:1: ( rule__DiscreteFunction__Group__6__Impl rule__DiscreteFunction__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12619:2: rule__DiscreteFunction__Group__6__Impl rule__DiscreteFunction__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__6__Impl_in_rule__DiscreteFunction__Group__625199);
+            rule__DiscreteFunction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__7_in_rule__DiscreteFunction__Group__625202);
+            rule__DiscreteFunction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__6"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12626:1: rule__DiscreteFunction__Group__6__Impl : ( '{' ) ;
+    public final void rule__DiscreteFunction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12630:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12631:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12631:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12632:1: '{'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__DiscreteFunction__Group__6__Impl25230); 
+             after(grammarAccess.getDiscreteFunctionAccess().getLeftCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12645:1: rule__DiscreteFunction__Group__7 : rule__DiscreteFunction__Group__7__Impl rule__DiscreteFunction__Group__8 ;
+    public final void rule__DiscreteFunction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12649:1: ( rule__DiscreteFunction__Group__7__Impl rule__DiscreteFunction__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12650:2: rule__DiscreteFunction__Group__7__Impl rule__DiscreteFunction__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__7__Impl_in_rule__DiscreteFunction__Group__725261);
+            rule__DiscreteFunction__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__8_in_rule__DiscreteFunction__Group__725264);
+            rule__DiscreteFunction__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__7"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12657:1: rule__DiscreteFunction__Group__7__Impl : ( ( rule__DiscreteFunction__XAssignment_7 ) ) ;
+    public final void rule__DiscreteFunction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12661:1: ( ( ( rule__DiscreteFunction__XAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12662:1: ( ( rule__DiscreteFunction__XAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12662:1: ( ( rule__DiscreteFunction__XAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12663:1: ( rule__DiscreteFunction__XAssignment_7 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12664:1: ( rule__DiscreteFunction__XAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12664:2: rule__DiscreteFunction__XAssignment_7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__XAssignment_7_in_rule__DiscreteFunction__Group__7__Impl25291);
+            rule__DiscreteFunction__XAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12674:1: rule__DiscreteFunction__Group__8 : rule__DiscreteFunction__Group__8__Impl rule__DiscreteFunction__Group__9 ;
+    public final void rule__DiscreteFunction__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12678:1: ( rule__DiscreteFunction__Group__8__Impl rule__DiscreteFunction__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12679:2: rule__DiscreteFunction__Group__8__Impl rule__DiscreteFunction__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__8__Impl_in_rule__DiscreteFunction__Group__825321);
+            rule__DiscreteFunction__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__9_in_rule__DiscreteFunction__Group__825324);
+            rule__DiscreteFunction__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__8"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12686:1: rule__DiscreteFunction__Group__8__Impl : ( ( rule__DiscreteFunction__Group_8__0 )* ) ;
+    public final void rule__DiscreteFunction__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12690:1: ( ( ( rule__DiscreteFunction__Group_8__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12691:1: ( ( rule__DiscreteFunction__Group_8__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12691:1: ( ( rule__DiscreteFunction__Group_8__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12692:1: ( rule__DiscreteFunction__Group_8__0 )*
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12693:1: ( rule__DiscreteFunction__Group_8__0 )*
+            loop59:
+            do {
+                int alt59=2;
+                int LA59_0 = input.LA(1);
+
+                if ( (LA59_0==31) ) {
+                    alt59=1;
+                }
+
+
+                switch (alt59) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12693:2: rule__DiscreteFunction__Group_8__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_8__0_in_rule__DiscreteFunction__Group__8__Impl25351);
+            	    rule__DiscreteFunction__Group_8__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop59;
+                }
+            } while (true);
+
+             after(grammarAccess.getDiscreteFunctionAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__8__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12703:1: rule__DiscreteFunction__Group__9 : rule__DiscreteFunction__Group__9__Impl rule__DiscreteFunction__Group__10 ;
+    public final void rule__DiscreteFunction__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12707:1: ( rule__DiscreteFunction__Group__9__Impl rule__DiscreteFunction__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12708:2: rule__DiscreteFunction__Group__9__Impl rule__DiscreteFunction__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__9__Impl_in_rule__DiscreteFunction__Group__925382);
+            rule__DiscreteFunction__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__10_in_rule__DiscreteFunction__Group__925385);
+            rule__DiscreteFunction__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__9"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12715:1: rule__DiscreteFunction__Group__9__Impl : ( '}' ) ;
+    public final void rule__DiscreteFunction__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12719:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12720:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12720:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12721:1: '}'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__DiscreteFunction__Group__9__Impl25413); 
+             after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__9__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12734:1: rule__DiscreteFunction__Group__10 : rule__DiscreteFunction__Group__10__Impl rule__DiscreteFunction__Group__11 ;
+    public final void rule__DiscreteFunction__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12738:1: ( rule__DiscreteFunction__Group__10__Impl rule__DiscreteFunction__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12739:2: rule__DiscreteFunction__Group__10__Impl rule__DiscreteFunction__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__10__Impl_in_rule__DiscreteFunction__Group__1025444);
+            rule__DiscreteFunction__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__11_in_rule__DiscreteFunction__Group__1025447);
+            rule__DiscreteFunction__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__10"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12746:1: rule__DiscreteFunction__Group__10__Impl : ( 'y' ) ;
+    public final void rule__DiscreteFunction__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12750:1: ( ( 'y' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12751:1: ( 'y' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12751:1: ( 'y' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12752:1: 'y'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); 
+            match(input,98,FollowSets001.FOLLOW_98_in_rule__DiscreteFunction__Group__10__Impl25475); 
+             after(grammarAccess.getDiscreteFunctionAccess().getYKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__10__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12765:1: rule__DiscreteFunction__Group__11 : rule__DiscreteFunction__Group__11__Impl rule__DiscreteFunction__Group__12 ;
+    public final void rule__DiscreteFunction__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12769:1: ( rule__DiscreteFunction__Group__11__Impl rule__DiscreteFunction__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12770:2: rule__DiscreteFunction__Group__11__Impl rule__DiscreteFunction__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__11__Impl_in_rule__DiscreteFunction__Group__1125506);
+            rule__DiscreteFunction__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__12_in_rule__DiscreteFunction__Group__1125509);
+            rule__DiscreteFunction__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__11"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12777:1: rule__DiscreteFunction__Group__11__Impl : ( ( rule__DiscreteFunction__YAssignment_11 ) ) ;
+    public final void rule__DiscreteFunction__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12781:1: ( ( ( rule__DiscreteFunction__YAssignment_11 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12782:1: ( ( rule__DiscreteFunction__YAssignment_11 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12782:1: ( ( rule__DiscreteFunction__YAssignment_11 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12783:1: ( rule__DiscreteFunction__YAssignment_11 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12784:1: ( rule__DiscreteFunction__YAssignment_11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12784:2: rule__DiscreteFunction__YAssignment_11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__YAssignment_11_in_rule__DiscreteFunction__Group__11__Impl25536);
+            rule__DiscreteFunction__YAssignment_11();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getYAssignment_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__11__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12794:1: rule__DiscreteFunction__Group__12 : rule__DiscreteFunction__Group__12__Impl ;
+    public final void rule__DiscreteFunction__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12798:1: ( rule__DiscreteFunction__Group__12__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12799:2: rule__DiscreteFunction__Group__12__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group__12__Impl_in_rule__DiscreteFunction__Group__1225566);
+            rule__DiscreteFunction__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__12"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12805:1: rule__DiscreteFunction__Group__12__Impl : ( '}' ) ;
+    public final void rule__DiscreteFunction__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12809:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12810:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12810:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12811:1: '}'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__DiscreteFunction__Group__12__Impl25594); 
+             after(grammarAccess.getDiscreteFunctionAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group__12__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12850:1: rule__DiscreteFunction__Group_4__0 : rule__DiscreteFunction__Group_4__0__Impl rule__DiscreteFunction__Group_4__1 ;
+    public final void rule__DiscreteFunction__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12854:1: ( rule__DiscreteFunction__Group_4__0__Impl rule__DiscreteFunction__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12855:2: rule__DiscreteFunction__Group_4__0__Impl rule__DiscreteFunction__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_4__0__Impl_in_rule__DiscreteFunction__Group_4__025651);
+            rule__DiscreteFunction__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_4__1_in_rule__DiscreteFunction__Group_4__025654);
+            rule__DiscreteFunction__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_4__0"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12862:1: rule__DiscreteFunction__Group_4__0__Impl : ( 'unit' ) ;
+    public final void rule__DiscreteFunction__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12866:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12867:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12867:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12868:1: 'unit'
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__DiscreteFunction__Group_4__0__Impl25682); 
+             after(grammarAccess.getDiscreteFunctionAccess().getUnitKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12881:1: rule__DiscreteFunction__Group_4__1 : rule__DiscreteFunction__Group_4__1__Impl ;
+    public final void rule__DiscreteFunction__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12885:1: ( rule__DiscreteFunction__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12886:2: rule__DiscreteFunction__Group_4__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_4__1__Impl_in_rule__DiscreteFunction__Group_4__125713);
+            rule__DiscreteFunction__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_4__1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12892:1: rule__DiscreteFunction__Group_4__1__Impl : ( ( rule__DiscreteFunction__UnitAssignment_4_1 ) ) ;
+    public final void rule__DiscreteFunction__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12896:1: ( ( ( rule__DiscreteFunction__UnitAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12897:1: ( ( rule__DiscreteFunction__UnitAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12897:1: ( ( rule__DiscreteFunction__UnitAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12898:1: ( rule__DiscreteFunction__UnitAssignment_4_1 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12899:1: ( rule__DiscreteFunction__UnitAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12899:2: rule__DiscreteFunction__UnitAssignment_4_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__UnitAssignment_4_1_in_rule__DiscreteFunction__Group_4__1__Impl25740);
+            rule__DiscreteFunction__UnitAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getUnitAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12913:1: rule__DiscreteFunction__Group_8__0 : rule__DiscreteFunction__Group_8__0__Impl rule__DiscreteFunction__Group_8__1 ;
+    public final void rule__DiscreteFunction__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12917:1: ( rule__DiscreteFunction__Group_8__0__Impl rule__DiscreteFunction__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12918:2: rule__DiscreteFunction__Group_8__0__Impl rule__DiscreteFunction__Group_8__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_8__0__Impl_in_rule__DiscreteFunction__Group_8__025774);
+            rule__DiscreteFunction__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_8__1_in_rule__DiscreteFunction__Group_8__025777);
+            rule__DiscreteFunction__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_8__0"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12925:1: rule__DiscreteFunction__Group_8__0__Impl : ( ',' ) ;
+    public final void rule__DiscreteFunction__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12929:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12930:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12930:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12931:1: ','
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__DiscreteFunction__Group_8__0__Impl25805); 
+             after(grammarAccess.getDiscreteFunctionAccess().getCommaKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12944:1: rule__DiscreteFunction__Group_8__1 : rule__DiscreteFunction__Group_8__1__Impl ;
+    public final void rule__DiscreteFunction__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12948:1: ( rule__DiscreteFunction__Group_8__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12949:2: rule__DiscreteFunction__Group_8__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__Group_8__1__Impl_in_rule__DiscreteFunction__Group_8__125836);
+            rule__DiscreteFunction__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_8__1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12955:1: rule__DiscreteFunction__Group_8__1__Impl : ( ( rule__DiscreteFunction__XAssignment_8_1 ) ) ;
+    public final void rule__DiscreteFunction__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12959:1: ( ( ( rule__DiscreteFunction__XAssignment_8_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12960:1: ( ( rule__DiscreteFunction__XAssignment_8_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12960:1: ( ( rule__DiscreteFunction__XAssignment_8_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12961:1: ( rule__DiscreteFunction__XAssignment_8_1 )
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12962:1: ( rule__DiscreteFunction__XAssignment_8_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12962:2: rule__DiscreteFunction__XAssignment_8_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DiscreteFunction__XAssignment_8_1_in_rule__DiscreteFunction__Group_8__1__Impl25863);
+            rule__DiscreteFunction__XAssignment_8_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDiscreteFunctionAccess().getXAssignment_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12976:1: rule__EFloat__Group__0 : rule__EFloat__Group__0__Impl rule__EFloat__Group__1 ;
+    public final void rule__EFloat__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12980:1: ( rule__EFloat__Group__0__Impl rule__EFloat__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12981:2: rule__EFloat__Group__0__Impl rule__EFloat__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__0__Impl_in_rule__EFloat__Group__025897);
+            rule__EFloat__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__1_in_rule__EFloat__Group__025900);
+            rule__EFloat__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__0"
+
+
+    // $ANTLR start "rule__EFloat__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12988:1: rule__EFloat__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EFloat__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12992:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12993:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12993:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12994:1: ( '-' )?
+            {
+             before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12995:1: ( '-' )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==87) ) {
+                alt60=1;
+            }
+            switch (alt60) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:12996:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__EFloat__Group__0__Impl25929); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13007:1: rule__EFloat__Group__1 : rule__EFloat__Group__1__Impl rule__EFloat__Group__2 ;
+    public final void rule__EFloat__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13011:1: ( rule__EFloat__Group__1__Impl rule__EFloat__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13012:2: rule__EFloat__Group__1__Impl rule__EFloat__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__1__Impl_in_rule__EFloat__Group__125962);
+            rule__EFloat__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__2_in_rule__EFloat__Group__125965);
+            rule__EFloat__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__1"
+
+
+    // $ANTLR start "rule__EFloat__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13019:1: rule__EFloat__Group__1__Impl : ( ( RULE_INT )? ) ;
+    public final void rule__EFloat__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13023:1: ( ( ( RULE_INT )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13024:1: ( ( RULE_INT )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13024:1: ( ( RULE_INT )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13025:1: ( RULE_INT )?
+            {
+             before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13026:1: ( RULE_INT )?
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+
+            if ( (LA61_0==RULE_INT) ) {
+                alt61=1;
+            }
+            switch (alt61) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13026:3: RULE_INT
+                    {
+                    match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EFloat__Group__1__Impl25993); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13036:1: rule__EFloat__Group__2 : rule__EFloat__Group__2__Impl rule__EFloat__Group__3 ;
+    public final void rule__EFloat__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13040:1: ( rule__EFloat__Group__2__Impl rule__EFloat__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13041:2: rule__EFloat__Group__2__Impl rule__EFloat__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__2__Impl_in_rule__EFloat__Group__226024);
+            rule__EFloat__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__3_in_rule__EFloat__Group__226027);
+            rule__EFloat__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__2"
+
+
+    // $ANTLR start "rule__EFloat__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13048:1: rule__EFloat__Group__2__Impl : ( '.' ) ;
+    public final void rule__EFloat__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13052:1: ( ( '.' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13053:1: ( '.' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13053:1: ( '.' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13054:1: '.'
+            {
+             before(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); 
+            match(input,99,FollowSets001.FOLLOW_99_in_rule__EFloat__Group__2__Impl26055); 
+             after(grammarAccess.getEFloatAccess().getFullStopKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13067:1: rule__EFloat__Group__3 : rule__EFloat__Group__3__Impl rule__EFloat__Group__4 ;
+    public final void rule__EFloat__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13071:1: ( rule__EFloat__Group__3__Impl rule__EFloat__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13072:2: rule__EFloat__Group__3__Impl rule__EFloat__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__3__Impl_in_rule__EFloat__Group__326086);
+            rule__EFloat__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__4_in_rule__EFloat__Group__326089);
+            rule__EFloat__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__3"
+
+
+    // $ANTLR start "rule__EFloat__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13079:1: rule__EFloat__Group__3__Impl : ( RULE_INT ) ;
+    public final void rule__EFloat__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13083:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13084:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13084:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13085:1: RULE_INT
+            {
+             before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EFloat__Group__3__Impl26116); 
+             after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13096:1: rule__EFloat__Group__4 : rule__EFloat__Group__4__Impl ;
+    public final void rule__EFloat__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13100:1: ( rule__EFloat__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13101:2: rule__EFloat__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group__4__Impl_in_rule__EFloat__Group__426145);
+            rule__EFloat__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__4"
+
+
+    // $ANTLR start "rule__EFloat__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13107:1: rule__EFloat__Group__4__Impl : ( ( rule__EFloat__Group_4__0 )? ) ;
+    public final void rule__EFloat__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13111:1: ( ( ( rule__EFloat__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13112:1: ( ( rule__EFloat__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13112:1: ( ( rule__EFloat__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13113:1: ( rule__EFloat__Group_4__0 )?
+            {
+             before(grammarAccess.getEFloatAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13114:1: ( rule__EFloat__Group_4__0 )?
+            int alt62=2;
+            int LA62_0 = input.LA(1);
+
+            if ( ((LA62_0>=13 && LA62_0<=14)) ) {
+                alt62=1;
+            }
+            switch (alt62) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13114:2: rule__EFloat__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__0_in_rule__EFloat__Group__4__Impl26172);
+                    rule__EFloat__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13134:1: rule__EFloat__Group_4__0 : rule__EFloat__Group_4__0__Impl rule__EFloat__Group_4__1 ;
+    public final void rule__EFloat__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13138:1: ( rule__EFloat__Group_4__0__Impl rule__EFloat__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13139:2: rule__EFloat__Group_4__0__Impl rule__EFloat__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__0__Impl_in_rule__EFloat__Group_4__026213);
+            rule__EFloat__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__1_in_rule__EFloat__Group_4__026216);
+            rule__EFloat__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__0"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13146:1: rule__EFloat__Group_4__0__Impl : ( ( rule__EFloat__Alternatives_4_0 ) ) ;
+    public final void rule__EFloat__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13150:1: ( ( ( rule__EFloat__Alternatives_4_0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13151:1: ( ( rule__EFloat__Alternatives_4_0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13151:1: ( ( rule__EFloat__Alternatives_4_0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13152:1: ( rule__EFloat__Alternatives_4_0 )
+            {
+             before(grammarAccess.getEFloatAccess().getAlternatives_4_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13153:1: ( rule__EFloat__Alternatives_4_0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13153:2: rule__EFloat__Alternatives_4_0
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Alternatives_4_0_in_rule__EFloat__Group_4__0__Impl26243);
+            rule__EFloat__Alternatives_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getAlternatives_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13163:1: rule__EFloat__Group_4__1 : rule__EFloat__Group_4__1__Impl rule__EFloat__Group_4__2 ;
+    public final void rule__EFloat__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13167:1: ( rule__EFloat__Group_4__1__Impl rule__EFloat__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13168:2: rule__EFloat__Group_4__1__Impl rule__EFloat__Group_4__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__1__Impl_in_rule__EFloat__Group_4__126273);
+            rule__EFloat__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__2_in_rule__EFloat__Group_4__126276);
+            rule__EFloat__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__1"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13175:1: rule__EFloat__Group_4__1__Impl : ( ( '-' )? ) ;
+    public final void rule__EFloat__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13179:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13180:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13180:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13181:1: ( '-' )?
+            {
+             before(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13182:1: ( '-' )?
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==87) ) {
+                alt63=1;
+            }
+            switch (alt63) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13183:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__EFloat__Group_4__1__Impl26305); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEFloatAccess().getHyphenMinusKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13194:1: rule__EFloat__Group_4__2 : rule__EFloat__Group_4__2__Impl ;
+    public final void rule__EFloat__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13198:1: ( rule__EFloat__Group_4__2__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13199:2: rule__EFloat__Group_4__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EFloat__Group_4__2__Impl_in_rule__EFloat__Group_4__226338);
+            rule__EFloat__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__2"
+
+
+    // $ANTLR start "rule__EFloat__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13205:1: rule__EFloat__Group_4__2__Impl : ( RULE_INT ) ;
+    public final void rule__EFloat__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13209:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13210:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13210:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13211:1: RULE_INT
+            {
+             before(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EFloat__Group_4__2__Impl26365); 
+             after(grammarAccess.getEFloatAccess().getINTTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EFloat__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13228:1: rule__SpeedUnit__Group__0 : rule__SpeedUnit__Group__0__Impl rule__SpeedUnit__Group__1 ;
+    public final void rule__SpeedUnit__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13232:1: ( rule__SpeedUnit__Group__0__Impl rule__SpeedUnit__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13233:2: rule__SpeedUnit__Group__0__Impl rule__SpeedUnit__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__0__Impl_in_rule__SpeedUnit__Group__026400);
+            rule__SpeedUnit__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__1_in_rule__SpeedUnit__Group__026403);
+            rule__SpeedUnit__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__0"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13240:1: rule__SpeedUnit__Group__0__Impl : ( 'SpeedUnit' ) ;
+    public final void rule__SpeedUnit__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13244:1: ( ( 'SpeedUnit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13245:1: ( 'SpeedUnit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13245:1: ( 'SpeedUnit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13246:1: 'SpeedUnit'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); 
+            match(input,100,FollowSets001.FOLLOW_100_in_rule__SpeedUnit__Group__0__Impl26431); 
+             after(grammarAccess.getSpeedUnitAccess().getSpeedUnitKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13259:1: rule__SpeedUnit__Group__1 : rule__SpeedUnit__Group__1__Impl rule__SpeedUnit__Group__2 ;
+    public final void rule__SpeedUnit__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13263:1: ( rule__SpeedUnit__Group__1__Impl rule__SpeedUnit__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13264:2: rule__SpeedUnit__Group__1__Impl rule__SpeedUnit__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__1__Impl_in_rule__SpeedUnit__Group__126462);
+            rule__SpeedUnit__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__2_in_rule__SpeedUnit__Group__126465);
+            rule__SpeedUnit__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__1"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13271:1: rule__SpeedUnit__Group__1__Impl : ( '{' ) ;
+    public final void rule__SpeedUnit__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13275:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13276:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13276:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13277:1: '{'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__SpeedUnit__Group__1__Impl26493); 
+             after(grammarAccess.getSpeedUnitAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13290:1: rule__SpeedUnit__Group__2 : rule__SpeedUnit__Group__2__Impl rule__SpeedUnit__Group__3 ;
+    public final void rule__SpeedUnit__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13294:1: ( rule__SpeedUnit__Group__2__Impl rule__SpeedUnit__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13295:2: rule__SpeedUnit__Group__2__Impl rule__SpeedUnit__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__2__Impl_in_rule__SpeedUnit__Group__226524);
+            rule__SpeedUnit__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__3_in_rule__SpeedUnit__Group__226527);
+            rule__SpeedUnit__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__2"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13302:1: rule__SpeedUnit__Group__2__Impl : ( 'prefix' ) ;
+    public final void rule__SpeedUnit__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13306:1: ( ( 'prefix' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13307:1: ( 'prefix' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13307:1: ( 'prefix' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13308:1: 'prefix'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); 
+            match(input,101,FollowSets001.FOLLOW_101_in_rule__SpeedUnit__Group__2__Impl26555); 
+             after(grammarAccess.getSpeedUnitAccess().getPrefixKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13321:1: rule__SpeedUnit__Group__3 : rule__SpeedUnit__Group__3__Impl rule__SpeedUnit__Group__4 ;
+    public final void rule__SpeedUnit__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13325:1: ( rule__SpeedUnit__Group__3__Impl rule__SpeedUnit__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13326:2: rule__SpeedUnit__Group__3__Impl rule__SpeedUnit__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__3__Impl_in_rule__SpeedUnit__Group__326586);
+            rule__SpeedUnit__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__4_in_rule__SpeedUnit__Group__326589);
+            rule__SpeedUnit__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__3"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13333:1: rule__SpeedUnit__Group__3__Impl : ( ( rule__SpeedUnit__PrefixAssignment_3 ) ) ;
+    public final void rule__SpeedUnit__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13337:1: ( ( ( rule__SpeedUnit__PrefixAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13338:1: ( ( rule__SpeedUnit__PrefixAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13338:1: ( ( rule__SpeedUnit__PrefixAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13339:1: ( rule__SpeedUnit__PrefixAssignment_3 )
+            {
+             before(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13340:1: ( rule__SpeedUnit__PrefixAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13340:2: rule__SpeedUnit__PrefixAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__PrefixAssignment_3_in_rule__SpeedUnit__Group__3__Impl26616);
+            rule__SpeedUnit__PrefixAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpeedUnitAccess().getPrefixAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13350:1: rule__SpeedUnit__Group__4 : rule__SpeedUnit__Group__4__Impl rule__SpeedUnit__Group__5 ;
+    public final void rule__SpeedUnit__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13354:1: ( rule__SpeedUnit__Group__4__Impl rule__SpeedUnit__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13355:2: rule__SpeedUnit__Group__4__Impl rule__SpeedUnit__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__4__Impl_in_rule__SpeedUnit__Group__426646);
+            rule__SpeedUnit__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__5_in_rule__SpeedUnit__Group__426649);
+            rule__SpeedUnit__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__4"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13362:1: rule__SpeedUnit__Group__4__Impl : ( 'value' ) ;
+    public final void rule__SpeedUnit__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13366:1: ( ( 'value' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13367:1: ( 'value' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13367:1: ( 'value' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13368:1: 'value'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); 
+            match(input,63,FollowSets001.FOLLOW_63_in_rule__SpeedUnit__Group__4__Impl26677); 
+             after(grammarAccess.getSpeedUnitAccess().getValueKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13381:1: rule__SpeedUnit__Group__5 : rule__SpeedUnit__Group__5__Impl rule__SpeedUnit__Group__6 ;
+    public final void rule__SpeedUnit__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13385:1: ( rule__SpeedUnit__Group__5__Impl rule__SpeedUnit__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13386:2: rule__SpeedUnit__Group__5__Impl rule__SpeedUnit__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__5__Impl_in_rule__SpeedUnit__Group__526708);
+            rule__SpeedUnit__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__6_in_rule__SpeedUnit__Group__526711);
+            rule__SpeedUnit__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__5"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13393:1: rule__SpeedUnit__Group__5__Impl : ( ( rule__SpeedUnit__ValueAssignment_5 ) ) ;
+    public final void rule__SpeedUnit__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13397:1: ( ( ( rule__SpeedUnit__ValueAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13398:1: ( ( rule__SpeedUnit__ValueAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13398:1: ( ( rule__SpeedUnit__ValueAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13399:1: ( rule__SpeedUnit__ValueAssignment_5 )
+            {
+             before(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13400:1: ( rule__SpeedUnit__ValueAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13400:2: rule__SpeedUnit__ValueAssignment_5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__ValueAssignment_5_in_rule__SpeedUnit__Group__5__Impl26738);
+            rule__SpeedUnit__ValueAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpeedUnitAccess().getValueAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13410:1: rule__SpeedUnit__Group__6 : rule__SpeedUnit__Group__6__Impl rule__SpeedUnit__Group__7 ;
+    public final void rule__SpeedUnit__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13414:1: ( rule__SpeedUnit__Group__6__Impl rule__SpeedUnit__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13415:2: rule__SpeedUnit__Group__6__Impl rule__SpeedUnit__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__6__Impl_in_rule__SpeedUnit__Group__626768);
+            rule__SpeedUnit__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__7_in_rule__SpeedUnit__Group__626771);
+            rule__SpeedUnit__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__6"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13422:1: rule__SpeedUnit__Group__6__Impl : ( 'unit' ) ;
+    public final void rule__SpeedUnit__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13426:1: ( ( 'unit' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13427:1: ( 'unit' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13427:1: ( 'unit' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13428:1: 'unit'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); 
+            match(input,89,FollowSets001.FOLLOW_89_in_rule__SpeedUnit__Group__6__Impl26799); 
+             after(grammarAccess.getSpeedUnitAccess().getUnitKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13441:1: rule__SpeedUnit__Group__7 : rule__SpeedUnit__Group__7__Impl rule__SpeedUnit__Group__8 ;
+    public final void rule__SpeedUnit__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13445:1: ( rule__SpeedUnit__Group__7__Impl rule__SpeedUnit__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13446:2: rule__SpeedUnit__Group__7__Impl rule__SpeedUnit__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__7__Impl_in_rule__SpeedUnit__Group__726830);
+            rule__SpeedUnit__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__8_in_rule__SpeedUnit__Group__726833);
+            rule__SpeedUnit__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__7"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13453:1: rule__SpeedUnit__Group__7__Impl : ( ( rule__SpeedUnit__UnitAssignment_7 ) ) ;
+    public final void rule__SpeedUnit__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13457:1: ( ( ( rule__SpeedUnit__UnitAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13458:1: ( ( rule__SpeedUnit__UnitAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13458:1: ( ( rule__SpeedUnit__UnitAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13459:1: ( rule__SpeedUnit__UnitAssignment_7 )
+            {
+             before(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13460:1: ( rule__SpeedUnit__UnitAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13460:2: rule__SpeedUnit__UnitAssignment_7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__UnitAssignment_7_in_rule__SpeedUnit__Group__7__Impl26860);
+            rule__SpeedUnit__UnitAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSpeedUnitAccess().getUnitAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__7__Impl"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13470:1: rule__SpeedUnit__Group__8 : rule__SpeedUnit__Group__8__Impl ;
+    public final void rule__SpeedUnit__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13474:1: ( rule__SpeedUnit__Group__8__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13475:2: rule__SpeedUnit__Group__8__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SpeedUnit__Group__8__Impl_in_rule__SpeedUnit__Group__826890);
+            rule__SpeedUnit__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__8"
+
+
+    // $ANTLR start "rule__SpeedUnit__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13481:1: rule__SpeedUnit__Group__8__Impl : ( '}' ) ;
+    public final void rule__SpeedUnit__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13485:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13486:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13486:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13487:1: '}'
+            {
+             before(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__SpeedUnit__Group__8__Impl26918); 
+             after(grammarAccess.getSpeedUnitAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__Group__8__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13518:1: rule__EDouble__Group__0 : rule__EDouble__Group__0__Impl rule__EDouble__Group__1 ;
+    public final void rule__EDouble__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13522:1: ( rule__EDouble__Group__0__Impl rule__EDouble__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13523:2: rule__EDouble__Group__0__Impl rule__EDouble__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__026967);
+            rule__EDouble__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__026970);
+            rule__EDouble__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__0"
+
+
+    // $ANTLR start "rule__EDouble__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13530:1: rule__EDouble__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EDouble__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13534:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13535:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13535:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13536:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13537:1: ( '-' )?
+            int alt64=2;
+            int LA64_0 = input.LA(1);
+
+            if ( (LA64_0==87) ) {
+                alt64=1;
+            }
+            switch (alt64) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13538:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__EDouble__Group__0__Impl26999); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13549:1: rule__EDouble__Group__1 : rule__EDouble__Group__1__Impl rule__EDouble__Group__2 ;
+    public final void rule__EDouble__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13553:1: ( rule__EDouble__Group__1__Impl rule__EDouble__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13554:2: rule__EDouble__Group__1__Impl rule__EDouble__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__127032);
+            rule__EDouble__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__127035);
+            rule__EDouble__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__1"
+
+
+    // $ANTLR start "rule__EDouble__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13561:1: rule__EDouble__Group__1__Impl : ( ( RULE_INT )? ) ;
+    public final void rule__EDouble__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13565:1: ( ( ( RULE_INT )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13566:1: ( ( RULE_INT )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13566:1: ( ( RULE_INT )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13567:1: ( RULE_INT )?
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13568:1: ( RULE_INT )?
+            int alt65=2;
+            int LA65_0 = input.LA(1);
+
+            if ( (LA65_0==RULE_INT) ) {
+                alt65=1;
+            }
+            switch (alt65) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13568:3: RULE_INT
+                    {
+                    match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl27063); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13578:1: rule__EDouble__Group__2 : rule__EDouble__Group__2__Impl rule__EDouble__Group__3 ;
+    public final void rule__EDouble__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13582:1: ( rule__EDouble__Group__2__Impl rule__EDouble__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13583:2: rule__EDouble__Group__2__Impl rule__EDouble__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__227094);
+            rule__EDouble__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__227097);
+            rule__EDouble__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__2"
+
+
+    // $ANTLR start "rule__EDouble__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13590:1: rule__EDouble__Group__2__Impl : ( '.' ) ;
+    public final void rule__EDouble__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13594:1: ( ( '.' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13595:1: ( '.' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13595:1: ( '.' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13596:1: '.'
+            {
+             before(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+            match(input,99,FollowSets001.FOLLOW_99_in_rule__EDouble__Group__2__Impl27125); 
+             after(grammarAccess.getEDoubleAccess().getFullStopKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13609:1: rule__EDouble__Group__3 : rule__EDouble__Group__3__Impl rule__EDouble__Group__4 ;
+    public final void rule__EDouble__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13613:1: ( rule__EDouble__Group__3__Impl rule__EDouble__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13614:2: rule__EDouble__Group__3__Impl rule__EDouble__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__327156);
+            rule__EDouble__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__327159);
+            rule__EDouble__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__3"
+
+
+    // $ANTLR start "rule__EDouble__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13621:1: rule__EDouble__Group__3__Impl : ( RULE_INT ) ;
+    public final void rule__EDouble__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13625:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13626:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13626:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13627:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl27186); 
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13638:1: rule__EDouble__Group__4 : rule__EDouble__Group__4__Impl ;
+    public final void rule__EDouble__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13642:1: ( rule__EDouble__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13643:2: rule__EDouble__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__427215);
+            rule__EDouble__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__4"
+
+
+    // $ANTLR start "rule__EDouble__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13649:1: rule__EDouble__Group__4__Impl : ( ( rule__EDouble__Group_4__0 )? ) ;
+    public final void rule__EDouble__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13653:1: ( ( ( rule__EDouble__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13654:1: ( ( rule__EDouble__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13654:1: ( ( rule__EDouble__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13655:1: ( rule__EDouble__Group_4__0 )?
+            {
+             before(grammarAccess.getEDoubleAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13656:1: ( rule__EDouble__Group_4__0 )?
+            int alt66=2;
+            int LA66_0 = input.LA(1);
+
+            if ( ((LA66_0>=13 && LA66_0<=14)) ) {
+                alt66=1;
+            }
+            switch (alt66) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13656:2: rule__EDouble__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl27242);
+                    rule__EDouble__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13676:1: rule__EDouble__Group_4__0 : rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1 ;
+    public final void rule__EDouble__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13680:1: ( rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13681:2: rule__EDouble__Group_4__0__Impl rule__EDouble__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__0__Impl_in_rule__EDouble__Group_4__027283);
+            rule__EDouble__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__027286);
+            rule__EDouble__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__0"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13688:1: rule__EDouble__Group_4__0__Impl : ( ( rule__EDouble__Alternatives_4_0 ) ) ;
+    public final void rule__EDouble__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13692:1: ( ( ( rule__EDouble__Alternatives_4_0 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13693:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13693:1: ( ( rule__EDouble__Alternatives_4_0 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13694:1: ( rule__EDouble__Alternatives_4_0 )
+            {
+             before(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13695:1: ( rule__EDouble__Alternatives_4_0 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13695:2: rule__EDouble__Alternatives_4_0
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl27313);
+            rule__EDouble__Alternatives_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getAlternatives_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13705:1: rule__EDouble__Group_4__1 : rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2 ;
+    public final void rule__EDouble__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13709:1: ( rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13710:2: rule__EDouble__Group_4__1__Impl rule__EDouble__Group_4__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__1__Impl_in_rule__EDouble__Group_4__127343);
+            rule__EDouble__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__127346);
+            rule__EDouble__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__1"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13717:1: rule__EDouble__Group_4__1__Impl : ( ( '-' )? ) ;
+    public final void rule__EDouble__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13721:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13722:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13722:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13723:1: ( '-' )?
+            {
+             before(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13724:1: ( '-' )?
+            int alt67=2;
+            int LA67_0 = input.LA(1);
+
+            if ( (LA67_0==87) ) {
+                alt67=1;
+            }
+            switch (alt67) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13725:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__EDouble__Group_4__1__Impl27375); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEDoubleAccess().getHyphenMinusKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13736:1: rule__EDouble__Group_4__2 : rule__EDouble__Group_4__2__Impl ;
+    public final void rule__EDouble__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13740:1: ( rule__EDouble__Group_4__2__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13741:2: rule__EDouble__Group_4__2__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__227408);
+            rule__EDouble__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__2"
+
+
+    // $ANTLR start "rule__EDouble__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13747:1: rule__EDouble__Group_4__2__Impl : ( RULE_INT ) ;
+    public final void rule__EDouble__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13751:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13752:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13752:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13753:1: RULE_INT
+            {
+             before(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl27435); 
+             after(grammarAccess.getEDoubleAccess().getINTTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EDouble__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__ELong__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13770:1: rule__ELong__Group__0 : rule__ELong__Group__0__Impl rule__ELong__Group__1 ;
+    public final void rule__ELong__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13774:1: ( rule__ELong__Group__0__Impl rule__ELong__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13775:2: rule__ELong__Group__0__Impl rule__ELong__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ELong__Group__0__Impl_in_rule__ELong__Group__027470);
+            rule__ELong__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ELong__Group__1_in_rule__ELong__Group__027473);
+            rule__ELong__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ELong__Group__0"
+
+
+    // $ANTLR start "rule__ELong__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13782:1: rule__ELong__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__ELong__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13786:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13787:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13787:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13788:1: ( '-' )?
+            {
+             before(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13789:1: ( '-' )?
+            int alt68=2;
+            int LA68_0 = input.LA(1);
+
+            if ( (LA68_0==87) ) {
+                alt68=1;
+            }
+            switch (alt68) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13790:2: '-'
+                    {
+                    match(input,87,FollowSets001.FOLLOW_87_in_rule__ELong__Group__0__Impl27502); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getELongAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ELong__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ELong__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13801:1: rule__ELong__Group__1 : rule__ELong__Group__1__Impl ;
+    public final void rule__ELong__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13805:1: ( rule__ELong__Group__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13806:2: rule__ELong__Group__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ELong__Group__1__Impl_in_rule__ELong__Group__127535);
+            rule__ELong__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ELong__Group__1"
+
+
+    // $ANTLR start "rule__ELong__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13812:1: rule__ELong__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__ELong__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13816:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13817:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13817:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13818:1: RULE_INT
+            {
+             before(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); 
+            match(input,RULE_INT,FollowSets001.FOLLOW_RULE_INT_in_rule__ELong__Group__1__Impl27562); 
+             after(grammarAccess.getELongAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ELong__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13833:1: rule__DataSeries__Group__0 : rule__DataSeries__Group__0__Impl rule__DataSeries__Group__1 ;
+    public final void rule__DataSeries__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13837:1: ( rule__DataSeries__Group__0__Impl rule__DataSeries__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13838:2: rule__DataSeries__Group__0__Impl rule__DataSeries__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__0__Impl_in_rule__DataSeries__Group__027595);
+            rule__DataSeries__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__1_in_rule__DataSeries__Group__027598);
+            rule__DataSeries__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__0"
+
+
+    // $ANTLR start "rule__DataSeries__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13845:1: rule__DataSeries__Group__0__Impl : ( () ) ;
+    public final void rule__DataSeries__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13849:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13850:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13850:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13851:1: ()
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13852:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13854:1: 
+            {
+            }
+
+             after(grammarAccess.getDataSeriesAccess().getDataSeriesAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__0__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13864:1: rule__DataSeries__Group__1 : rule__DataSeries__Group__1__Impl rule__DataSeries__Group__2 ;
+    public final void rule__DataSeries__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13868:1: ( rule__DataSeries__Group__1__Impl rule__DataSeries__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13869:2: rule__DataSeries__Group__1__Impl rule__DataSeries__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__1__Impl_in_rule__DataSeries__Group__127656);
+            rule__DataSeries__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__2_in_rule__DataSeries__Group__127659);
+            rule__DataSeries__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__1"
+
+
+    // $ANTLR start "rule__DataSeries__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13876:1: rule__DataSeries__Group__1__Impl : ( 'DataSeries' ) ;
+    public final void rule__DataSeries__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13880:1: ( ( 'DataSeries' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13881:1: ( 'DataSeries' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13881:1: ( 'DataSeries' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13882:1: 'DataSeries'
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); 
+            match(input,102,FollowSets001.FOLLOW_102_in_rule__DataSeries__Group__1__Impl27687); 
+             after(grammarAccess.getDataSeriesAccess().getDataSeriesKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13895:1: rule__DataSeries__Group__2 : rule__DataSeries__Group__2__Impl rule__DataSeries__Group__3 ;
+    public final void rule__DataSeries__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13899:1: ( rule__DataSeries__Group__2__Impl rule__DataSeries__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13900:2: rule__DataSeries__Group__2__Impl rule__DataSeries__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__2__Impl_in_rule__DataSeries__Group__227718);
+            rule__DataSeries__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__3_in_rule__DataSeries__Group__227721);
+            rule__DataSeries__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__2"
+
+
+    // $ANTLR start "rule__DataSeries__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13907:1: rule__DataSeries__Group__2__Impl : ( '{' ) ;
+    public final void rule__DataSeries__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13911:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13912:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13912:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13913:1: '{'
+            {
+             before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__DataSeries__Group__2__Impl27749); 
+             after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__2__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13926:1: rule__DataSeries__Group__3 : rule__DataSeries__Group__3__Impl rule__DataSeries__Group__4 ;
+    public final void rule__DataSeries__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13930:1: ( rule__DataSeries__Group__3__Impl rule__DataSeries__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13931:2: rule__DataSeries__Group__3__Impl rule__DataSeries__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__3__Impl_in_rule__DataSeries__Group__327780);
+            rule__DataSeries__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__4_in_rule__DataSeries__Group__327783);
+            rule__DataSeries__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__3"
+
+
+    // $ANTLR start "rule__DataSeries__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13938:1: rule__DataSeries__Group__3__Impl : ( ( rule__DataSeries__Group_3__0 )? ) ;
+    public final void rule__DataSeries__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13942:1: ( ( ( rule__DataSeries__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13943:1: ( ( rule__DataSeries__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13943:1: ( ( rule__DataSeries__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13944:1: ( rule__DataSeries__Group_3__0 )?
+            {
+             before(grammarAccess.getDataSeriesAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13945:1: ( rule__DataSeries__Group_3__0 )?
+            int alt69=2;
+            int LA69_0 = input.LA(1);
+
+            if ( (LA69_0==103) ) {
+                alt69=1;
+            }
+            switch (alt69) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13945:2: rule__DataSeries__Group_3__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__0_in_rule__DataSeries__Group__3__Impl27810);
+                    rule__DataSeries__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDataSeriesAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__3__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13955:1: rule__DataSeries__Group__4 : rule__DataSeries__Group__4__Impl ;
+    public final void rule__DataSeries__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13959:1: ( rule__DataSeries__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13960:2: rule__DataSeries__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group__4__Impl_in_rule__DataSeries__Group__427841);
+            rule__DataSeries__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__4"
+
+
+    // $ANTLR start "rule__DataSeries__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13966:1: rule__DataSeries__Group__4__Impl : ( '}' ) ;
+    public final void rule__DataSeries__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13970:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13971:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13971:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13972:1: '}'
+            {
+             before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__DataSeries__Group__4__Impl27869); 
+             after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13995:1: rule__DataSeries__Group_3__0 : rule__DataSeries__Group_3__0__Impl rule__DataSeries__Group_3__1 ;
+    public final void rule__DataSeries__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:13999:1: ( rule__DataSeries__Group_3__0__Impl rule__DataSeries__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14000:2: rule__DataSeries__Group_3__0__Impl rule__DataSeries__Group_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__0__Impl_in_rule__DataSeries__Group_3__027910);
+            rule__DataSeries__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__1_in_rule__DataSeries__Group_3__027913);
+            rule__DataSeries__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__0"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14007:1: rule__DataSeries__Group_3__0__Impl : ( 'data' ) ;
+    public final void rule__DataSeries__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14011:1: ( ( 'data' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14012:1: ( 'data' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14012:1: ( 'data' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14013:1: 'data'
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); 
+            match(input,103,FollowSets001.FOLLOW_103_in_rule__DataSeries__Group_3__0__Impl27941); 
+             after(grammarAccess.getDataSeriesAccess().getDataKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14026:1: rule__DataSeries__Group_3__1 : rule__DataSeries__Group_3__1__Impl rule__DataSeries__Group_3__2 ;
+    public final void rule__DataSeries__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14030:1: ( rule__DataSeries__Group_3__1__Impl rule__DataSeries__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14031:2: rule__DataSeries__Group_3__1__Impl rule__DataSeries__Group_3__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__1__Impl_in_rule__DataSeries__Group_3__127972);
+            rule__DataSeries__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__2_in_rule__DataSeries__Group_3__127975);
+            rule__DataSeries__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__1"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14038:1: rule__DataSeries__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__DataSeries__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14042:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14043:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14043:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14044:1: '{'
+            {
+             before(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__DataSeries__Group_3__1__Impl28003); 
+             after(grammarAccess.getDataSeriesAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14057:1: rule__DataSeries__Group_3__2 : rule__DataSeries__Group_3__2__Impl rule__DataSeries__Group_3__3 ;
+    public final void rule__DataSeries__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14061:1: ( rule__DataSeries__Group_3__2__Impl rule__DataSeries__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14062:2: rule__DataSeries__Group_3__2__Impl rule__DataSeries__Group_3__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__2__Impl_in_rule__DataSeries__Group_3__228034);
+            rule__DataSeries__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__3_in_rule__DataSeries__Group_3__228037);
+            rule__DataSeries__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__2"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14069:1: rule__DataSeries__Group_3__2__Impl : ( ( rule__DataSeries__DataAssignment_3_2 ) ) ;
+    public final void rule__DataSeries__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14073:1: ( ( ( rule__DataSeries__DataAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14074:1: ( ( rule__DataSeries__DataAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14074:1: ( ( rule__DataSeries__DataAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14075:1: ( rule__DataSeries__DataAssignment_3_2 )
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14076:1: ( rule__DataSeries__DataAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14076:2: rule__DataSeries__DataAssignment_3_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__DataAssignment_3_2_in_rule__DataSeries__Group_3__2__Impl28064);
+            rule__DataSeries__DataAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14086:1: rule__DataSeries__Group_3__3 : rule__DataSeries__Group_3__3__Impl rule__DataSeries__Group_3__4 ;
+    public final void rule__DataSeries__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14090:1: ( rule__DataSeries__Group_3__3__Impl rule__DataSeries__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14091:2: rule__DataSeries__Group_3__3__Impl rule__DataSeries__Group_3__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__3__Impl_in_rule__DataSeries__Group_3__328094);
+            rule__DataSeries__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__4_in_rule__DataSeries__Group_3__328097);
+            rule__DataSeries__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__3"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14098:1: rule__DataSeries__Group_3__3__Impl : ( ( rule__DataSeries__Group_3_3__0 )* ) ;
+    public final void rule__DataSeries__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14102:1: ( ( ( rule__DataSeries__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14103:1: ( ( rule__DataSeries__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14103:1: ( ( rule__DataSeries__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14104:1: ( rule__DataSeries__Group_3_3__0 )*
+            {
+             before(grammarAccess.getDataSeriesAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14105:1: ( rule__DataSeries__Group_3_3__0 )*
+            loop70:
+            do {
+                int alt70=2;
+                int LA70_0 = input.LA(1);
+
+                if ( (LA70_0==31) ) {
+                    alt70=1;
+                }
+
+
+                switch (alt70) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14105:2: rule__DataSeries__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3_3__0_in_rule__DataSeries__Group_3__3__Impl28124);
+            	    rule__DataSeries__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop70;
+                }
+            } while (true);
+
+             after(grammarAccess.getDataSeriesAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14115:1: rule__DataSeries__Group_3__4 : rule__DataSeries__Group_3__4__Impl ;
+    public final void rule__DataSeries__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14119:1: ( rule__DataSeries__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14120:2: rule__DataSeries__Group_3__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3__4__Impl_in_rule__DataSeries__Group_3__428155);
+            rule__DataSeries__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__4"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14126:1: rule__DataSeries__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__DataSeries__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14130:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14131:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14131:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14132:1: '}'
+            {
+             before(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__DataSeries__Group_3__4__Impl28183); 
+             after(grammarAccess.getDataSeriesAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14155:1: rule__DataSeries__Group_3_3__0 : rule__DataSeries__Group_3_3__0__Impl rule__DataSeries__Group_3_3__1 ;
+    public final void rule__DataSeries__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14159:1: ( rule__DataSeries__Group_3_3__0__Impl rule__DataSeries__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14160:2: rule__DataSeries__Group_3_3__0__Impl rule__DataSeries__Group_3_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3_3__0__Impl_in_rule__DataSeries__Group_3_3__028224);
+            rule__DataSeries__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3_3__1_in_rule__DataSeries__Group_3_3__028227);
+            rule__DataSeries__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3_3__0"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14167:1: rule__DataSeries__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__DataSeries__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14171:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14172:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14172:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14173:1: ','
+            {
+             before(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__DataSeries__Group_3_3__0__Impl28255); 
+             after(grammarAccess.getDataSeriesAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14186:1: rule__DataSeries__Group_3_3__1 : rule__DataSeries__Group_3_3__1__Impl ;
+    public final void rule__DataSeries__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14190:1: ( rule__DataSeries__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14191:2: rule__DataSeries__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__Group_3_3__1__Impl_in_rule__DataSeries__Group_3_3__128286);
+            rule__DataSeries__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3_3__1"
+
+
+    // $ANTLR start "rule__DataSeries__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14197:1: rule__DataSeries__Group_3_3__1__Impl : ( ( rule__DataSeries__DataAssignment_3_3_1 ) ) ;
+    public final void rule__DataSeries__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14201:1: ( ( ( rule__DataSeries__DataAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14202:1: ( ( rule__DataSeries__DataAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14202:1: ( ( rule__DataSeries__DataAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14203:1: ( rule__DataSeries__DataAssignment_3_3_1 )
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14204:1: ( rule__DataSeries__DataAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14204:2: rule__DataSeries__DataAssignment_3_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__DataSeries__DataAssignment_3_3_1_in_rule__DataSeries__Group_3_3__1__Impl28313);
+            rule__DataSeries__DataAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDataSeriesAccess().getDataAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14218:1: rule__TrafficSource__Group__0 : rule__TrafficSource__Group__0__Impl rule__TrafficSource__Group__1 ;
+    public final void rule__TrafficSource__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14222:1: ( rule__TrafficSource__Group__0__Impl rule__TrafficSource__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14223:2: rule__TrafficSource__Group__0__Impl rule__TrafficSource__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__0__Impl_in_rule__TrafficSource__Group__028347);
+            rule__TrafficSource__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__1_in_rule__TrafficSource__Group__028350);
+            rule__TrafficSource__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14230:1: rule__TrafficSource__Group__0__Impl : ( 'TrafficSource' ) ;
+    public final void rule__TrafficSource__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14234:1: ( ( 'TrafficSource' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14235:1: ( 'TrafficSource' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14235:1: ( 'TrafficSource' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14236:1: 'TrafficSource'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); 
+            match(input,104,FollowSets001.FOLLOW_104_in_rule__TrafficSource__Group__0__Impl28378); 
+             after(grammarAccess.getTrafficSourceAccess().getTrafficSourceKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14249:1: rule__TrafficSource__Group__1 : rule__TrafficSource__Group__1__Impl rule__TrafficSource__Group__2 ;
+    public final void rule__TrafficSource__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14253:1: ( rule__TrafficSource__Group__1__Impl rule__TrafficSource__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14254:2: rule__TrafficSource__Group__1__Impl rule__TrafficSource__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__1__Impl_in_rule__TrafficSource__Group__128409);
+            rule__TrafficSource__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__2_in_rule__TrafficSource__Group__128412);
+            rule__TrafficSource__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14261:1: rule__TrafficSource__Group__1__Impl : ( ( rule__TrafficSource__IdAssignment_1 ) ) ;
+    public final void rule__TrafficSource__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14265:1: ( ( ( rule__TrafficSource__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14266:1: ( ( rule__TrafficSource__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14266:1: ( ( rule__TrafficSource__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14267:1: ( rule__TrafficSource__IdAssignment_1 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14268:1: ( rule__TrafficSource__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14268:2: rule__TrafficSource__IdAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__IdAssignment_1_in_rule__TrafficSource__Group__1__Impl28439);
+            rule__TrafficSource__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14278:1: rule__TrafficSource__Group__2 : rule__TrafficSource__Group__2__Impl rule__TrafficSource__Group__3 ;
+    public final void rule__TrafficSource__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14282:1: ( rule__TrafficSource__Group__2__Impl rule__TrafficSource__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14283:2: rule__TrafficSource__Group__2__Impl rule__TrafficSource__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__2__Impl_in_rule__TrafficSource__Group__228469);
+            rule__TrafficSource__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__3_in_rule__TrafficSource__Group__228472);
+            rule__TrafficSource__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__2"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14290:1: rule__TrafficSource__Group__2__Impl : ( '{' ) ;
+    public final void rule__TrafficSource__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14294:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14295:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14295:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14296:1: '{'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__TrafficSource__Group__2__Impl28500); 
+             after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14309:1: rule__TrafficSource__Group__3 : rule__TrafficSource__Group__3__Impl rule__TrafficSource__Group__4 ;
+    public final void rule__TrafficSource__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14313:1: ( rule__TrafficSource__Group__3__Impl rule__TrafficSource__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14314:2: rule__TrafficSource__Group__3__Impl rule__TrafficSource__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__3__Impl_in_rule__TrafficSource__Group__328531);
+            rule__TrafficSource__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__4_in_rule__TrafficSource__Group__328534);
+            rule__TrafficSource__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__3"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14321:1: rule__TrafficSource__Group__3__Impl : ( 'name' ) ;
+    public final void rule__TrafficSource__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14325:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14326:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14326:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14327:1: 'name'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets001.FOLLOW_65_in_rule__TrafficSource__Group__3__Impl28562); 
+             after(grammarAccess.getTrafficSourceAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14340:1: rule__TrafficSource__Group__4 : rule__TrafficSource__Group__4__Impl rule__TrafficSource__Group__5 ;
+    public final void rule__TrafficSource__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14344:1: ( rule__TrafficSource__Group__4__Impl rule__TrafficSource__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14345:2: rule__TrafficSource__Group__4__Impl rule__TrafficSource__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__4__Impl_in_rule__TrafficSource__Group__428593);
+            rule__TrafficSource__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__5_in_rule__TrafficSource__Group__428596);
+            rule__TrafficSource__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__4"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14352:1: rule__TrafficSource__Group__4__Impl : ( ( rule__TrafficSource__NameAssignment_4 ) ) ;
+    public final void rule__TrafficSource__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14356:1: ( ( ( rule__TrafficSource__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14357:1: ( ( rule__TrafficSource__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14357:1: ( ( rule__TrafficSource__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14358:1: ( rule__TrafficSource__NameAssignment_4 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14359:1: ( rule__TrafficSource__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14359:2: rule__TrafficSource__NameAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__NameAssignment_4_in_rule__TrafficSource__Group__4__Impl28623);
+            rule__TrafficSource__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14369:1: rule__TrafficSource__Group__5 : rule__TrafficSource__Group__5__Impl rule__TrafficSource__Group__6 ;
+    public final void rule__TrafficSource__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14373:1: ( rule__TrafficSource__Group__5__Impl rule__TrafficSource__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14374:2: rule__TrafficSource__Group__5__Impl rule__TrafficSource__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__5__Impl_in_rule__TrafficSource__Group__528653);
+            rule__TrafficSource__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__6_in_rule__TrafficSource__Group__528656);
+            rule__TrafficSource__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__5"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14381:1: rule__TrafficSource__Group__5__Impl : ( ( rule__TrafficSource__Group_5__0 )? ) ;
+    public final void rule__TrafficSource__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14385:1: ( ( ( rule__TrafficSource__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14386:1: ( ( rule__TrafficSource__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14386:1: ( ( rule__TrafficSource__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14387:1: ( rule__TrafficSource__Group_5__0 )?
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14388:1: ( rule__TrafficSource__Group_5__0 )?
+            int alt71=2;
+            int LA71_0 = input.LA(1);
+
+            if ( (LA71_0==67) ) {
+                alt71=1;
+            }
+            switch (alt71) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14388:2: rule__TrafficSource__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__0_in_rule__TrafficSource__Group__5__Impl28683);
+                    rule__TrafficSource__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__5__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14398:1: rule__TrafficSource__Group__6 : rule__TrafficSource__Group__6__Impl rule__TrafficSource__Group__7 ;
+    public final void rule__TrafficSource__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14402:1: ( rule__TrafficSource__Group__6__Impl rule__TrafficSource__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14403:2: rule__TrafficSource__Group__6__Impl rule__TrafficSource__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__6__Impl_in_rule__TrafficSource__Group__628714);
+            rule__TrafficSource__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__7_in_rule__TrafficSource__Group__628717);
+            rule__TrafficSource__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__6"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14410:1: rule__TrafficSource__Group__6__Impl : ( ( rule__TrafficSource__Group_6__0 )? ) ;
+    public final void rule__TrafficSource__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14414:1: ( ( ( rule__TrafficSource__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14415:1: ( ( rule__TrafficSource__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14415:1: ( ( rule__TrafficSource__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14416:1: ( rule__TrafficSource__Group_6__0 )?
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14417:1: ( rule__TrafficSource__Group_6__0 )?
+            int alt72=2;
+            int LA72_0 = input.LA(1);
+
+            if ( (LA72_0==106) ) {
+                alt72=1;
+            }
+            switch (alt72) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14417:2: rule__TrafficSource__Group_6__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__0_in_rule__TrafficSource__Group__6__Impl28744);
+                    rule__TrafficSource__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__6__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14427:1: rule__TrafficSource__Group__7 : rule__TrafficSource__Group__7__Impl rule__TrafficSource__Group__8 ;
+    public final void rule__TrafficSource__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14431:1: ( rule__TrafficSource__Group__7__Impl rule__TrafficSource__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14432:2: rule__TrafficSource__Group__7__Impl rule__TrafficSource__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__7__Impl_in_rule__TrafficSource__Group__728775);
+            rule__TrafficSource__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__8_in_rule__TrafficSource__Group__728778);
+            rule__TrafficSource__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__7"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14439:1: rule__TrafficSource__Group__7__Impl : ( 'workload' ) ;
+    public final void rule__TrafficSource__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14443:1: ( ( 'workload' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14444:1: ( 'workload' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14444:1: ( 'workload' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14445:1: 'workload'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); 
+            match(input,105,FollowSets001.FOLLOW_105_in_rule__TrafficSource__Group__7__Impl28806); 
+             after(grammarAccess.getTrafficSourceAccess().getWorkloadKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__7__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14458:1: rule__TrafficSource__Group__8 : rule__TrafficSource__Group__8__Impl rule__TrafficSource__Group__9 ;
+    public final void rule__TrafficSource__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14462:1: ( rule__TrafficSource__Group__8__Impl rule__TrafficSource__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14463:2: rule__TrafficSource__Group__8__Impl rule__TrafficSource__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__8__Impl_in_rule__TrafficSource__Group__828837);
+            rule__TrafficSource__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__9_in_rule__TrafficSource__Group__828840);
+            rule__TrafficSource__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__8"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14470:1: rule__TrafficSource__Group__8__Impl : ( '{' ) ;
+    public final void rule__TrafficSource__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14474:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14475:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14475:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14476:1: '{'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__TrafficSource__Group__8__Impl28868); 
+             after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__8__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14489:1: rule__TrafficSource__Group__9 : rule__TrafficSource__Group__9__Impl rule__TrafficSource__Group__10 ;
+    public final void rule__TrafficSource__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14493:1: ( rule__TrafficSource__Group__9__Impl rule__TrafficSource__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14494:2: rule__TrafficSource__Group__9__Impl rule__TrafficSource__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__9__Impl_in_rule__TrafficSource__Group__928899);
+            rule__TrafficSource__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__10_in_rule__TrafficSource__Group__928902);
+            rule__TrafficSource__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__9"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14501:1: rule__TrafficSource__Group__9__Impl : ( ( rule__TrafficSource__WorkloadAssignment_9 ) ) ;
+    public final void rule__TrafficSource__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14505:1: ( ( ( rule__TrafficSource__WorkloadAssignment_9 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14506:1: ( ( rule__TrafficSource__WorkloadAssignment_9 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14506:1: ( ( rule__TrafficSource__WorkloadAssignment_9 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14507:1: ( rule__TrafficSource__WorkloadAssignment_9 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14508:1: ( rule__TrafficSource__WorkloadAssignment_9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14508:2: rule__TrafficSource__WorkloadAssignment_9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__WorkloadAssignment_9_in_rule__TrafficSource__Group__9__Impl28929);
+            rule__TrafficSource__WorkloadAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__9__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14518:1: rule__TrafficSource__Group__10 : rule__TrafficSource__Group__10__Impl rule__TrafficSource__Group__11 ;
+    public final void rule__TrafficSource__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14522:1: ( rule__TrafficSource__Group__10__Impl rule__TrafficSource__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14523:2: rule__TrafficSource__Group__10__Impl rule__TrafficSource__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__10__Impl_in_rule__TrafficSource__Group__1028959);
+            rule__TrafficSource__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__11_in_rule__TrafficSource__Group__1028962);
+            rule__TrafficSource__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__10"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14530:1: rule__TrafficSource__Group__10__Impl : ( ( rule__TrafficSource__Group_10__0 )* ) ;
+    public final void rule__TrafficSource__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14534:1: ( ( ( rule__TrafficSource__Group_10__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14535:1: ( ( rule__TrafficSource__Group_10__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14535:1: ( ( rule__TrafficSource__Group_10__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14536:1: ( rule__TrafficSource__Group_10__0 )*
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14537:1: ( rule__TrafficSource__Group_10__0 )*
+            loop73:
+            do {
+                int alt73=2;
+                int LA73_0 = input.LA(1);
+
+                if ( (LA73_0==31) ) {
+                    alt73=1;
+                }
+
+
+                switch (alt73) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14537:2: rule__TrafficSource__Group_10__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_10__0_in_rule__TrafficSource__Group__10__Impl28989);
+            	    rule__TrafficSource__Group_10__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop73;
+                }
+            } while (true);
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__10__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14547:1: rule__TrafficSource__Group__11 : rule__TrafficSource__Group__11__Impl rule__TrafficSource__Group__12 ;
+    public final void rule__TrafficSource__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14551:1: ( rule__TrafficSource__Group__11__Impl rule__TrafficSource__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14552:2: rule__TrafficSource__Group__11__Impl rule__TrafficSource__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__11__Impl_in_rule__TrafficSource__Group__1129020);
+            rule__TrafficSource__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__12_in_rule__TrafficSource__Group__1129023);
+            rule__TrafficSource__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__11"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14559:1: rule__TrafficSource__Group__11__Impl : ( '}' ) ;
+    public final void rule__TrafficSource__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14563:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14564:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14564:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14565:1: '}'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__TrafficSource__Group__11__Impl29051); 
+             after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__11__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14578:1: rule__TrafficSource__Group__12 : rule__TrafficSource__Group__12__Impl ;
+    public final void rule__TrafficSource__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14582:1: ( rule__TrafficSource__Group__12__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14583:2: rule__TrafficSource__Group__12__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group__12__Impl_in_rule__TrafficSource__Group__1229082);
+            rule__TrafficSource__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__12"
+
+
+    // $ANTLR start "rule__TrafficSource__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14589:1: rule__TrafficSource__Group__12__Impl : ( '}' ) ;
+    public final void rule__TrafficSource__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14593:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14594:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14594:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14595:1: '}'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__TrafficSource__Group__12__Impl29110); 
+             after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group__12__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14634:1: rule__TrafficSource__Group_5__0 : rule__TrafficSource__Group_5__0__Impl rule__TrafficSource__Group_5__1 ;
+    public final void rule__TrafficSource__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14638:1: ( rule__TrafficSource__Group_5__0__Impl rule__TrafficSource__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14639:2: rule__TrafficSource__Group_5__0__Impl rule__TrafficSource__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__0__Impl_in_rule__TrafficSource__Group_5__029167);
+            rule__TrafficSource__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__1_in_rule__TrafficSource__Group_5__029170);
+            rule__TrafficSource__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14646:1: rule__TrafficSource__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__TrafficSource__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14650:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14651:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14651:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14652:1: 'alternativeNames'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__TrafficSource__Group_5__0__Impl29198); 
+             after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14665:1: rule__TrafficSource__Group_5__1 : rule__TrafficSource__Group_5__1__Impl rule__TrafficSource__Group_5__2 ;
+    public final void rule__TrafficSource__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14669:1: ( rule__TrafficSource__Group_5__1__Impl rule__TrafficSource__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14670:2: rule__TrafficSource__Group_5__1__Impl rule__TrafficSource__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__1__Impl_in_rule__TrafficSource__Group_5__129229);
+            rule__TrafficSource__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__2_in_rule__TrafficSource__Group_5__129232);
+            rule__TrafficSource__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14677:1: rule__TrafficSource__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__TrafficSource__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14681:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14682:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14682:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14683:1: '{'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__TrafficSource__Group_5__1__Impl29260); 
+             after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14696:1: rule__TrafficSource__Group_5__2 : rule__TrafficSource__Group_5__2__Impl rule__TrafficSource__Group_5__3 ;
+    public final void rule__TrafficSource__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14700:1: ( rule__TrafficSource__Group_5__2__Impl rule__TrafficSource__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14701:2: rule__TrafficSource__Group_5__2__Impl rule__TrafficSource__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__2__Impl_in_rule__TrafficSource__Group_5__229291);
+            rule__TrafficSource__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__3_in_rule__TrafficSource__Group_5__229294);
+            rule__TrafficSource__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__2"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14708:1: rule__TrafficSource__Group_5__2__Impl : ( ( rule__TrafficSource__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__TrafficSource__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14712:1: ( ( ( rule__TrafficSource__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14713:1: ( ( rule__TrafficSource__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14713:1: ( ( rule__TrafficSource__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14714:1: ( rule__TrafficSource__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14715:1: ( rule__TrafficSource__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14715:2: rule__TrafficSource__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__AlternativeNamesAssignment_5_2_in_rule__TrafficSource__Group_5__2__Impl29321);
+            rule__TrafficSource__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14725:1: rule__TrafficSource__Group_5__3 : rule__TrafficSource__Group_5__3__Impl rule__TrafficSource__Group_5__4 ;
+    public final void rule__TrafficSource__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14729:1: ( rule__TrafficSource__Group_5__3__Impl rule__TrafficSource__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14730:2: rule__TrafficSource__Group_5__3__Impl rule__TrafficSource__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__3__Impl_in_rule__TrafficSource__Group_5__329351);
+            rule__TrafficSource__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__4_in_rule__TrafficSource__Group_5__329354);
+            rule__TrafficSource__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__3"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14737:1: rule__TrafficSource__Group_5__3__Impl : ( ( rule__TrafficSource__Group_5_3__0 )* ) ;
+    public final void rule__TrafficSource__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14741:1: ( ( ( rule__TrafficSource__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14742:1: ( ( rule__TrafficSource__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14742:1: ( ( rule__TrafficSource__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14743:1: ( rule__TrafficSource__Group_5_3__0 )*
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14744:1: ( rule__TrafficSource__Group_5_3__0 )*
+            loop74:
+            do {
+                int alt74=2;
+                int LA74_0 = input.LA(1);
+
+                if ( (LA74_0==31) ) {
+                    alt74=1;
+                }
+
+
+                switch (alt74) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14744:2: rule__TrafficSource__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5_3__0_in_rule__TrafficSource__Group_5__3__Impl29381);
+            	    rule__TrafficSource__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop74;
+                }
+            } while (true);
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14754:1: rule__TrafficSource__Group_5__4 : rule__TrafficSource__Group_5__4__Impl ;
+    public final void rule__TrafficSource__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14758:1: ( rule__TrafficSource__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14759:2: rule__TrafficSource__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5__4__Impl_in_rule__TrafficSource__Group_5__429412);
+            rule__TrafficSource__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__4"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14765:1: rule__TrafficSource__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__TrafficSource__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14769:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14770:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14770:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14771:1: '}'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__TrafficSource__Group_5__4__Impl29440); 
+             after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14794:1: rule__TrafficSource__Group_5_3__0 : rule__TrafficSource__Group_5_3__0__Impl rule__TrafficSource__Group_5_3__1 ;
+    public final void rule__TrafficSource__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14798:1: ( rule__TrafficSource__Group_5_3__0__Impl rule__TrafficSource__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14799:2: rule__TrafficSource__Group_5_3__0__Impl rule__TrafficSource__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5_3__0__Impl_in_rule__TrafficSource__Group_5_3__029481);
+            rule__TrafficSource__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5_3__1_in_rule__TrafficSource__Group_5_3__029484);
+            rule__TrafficSource__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5_3__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14806:1: rule__TrafficSource__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__TrafficSource__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14810:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14811:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14811:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14812:1: ','
+            {
+             before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__TrafficSource__Group_5_3__0__Impl29512); 
+             after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14825:1: rule__TrafficSource__Group_5_3__1 : rule__TrafficSource__Group_5_3__1__Impl ;
+    public final void rule__TrafficSource__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14829:1: ( rule__TrafficSource__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14830:2: rule__TrafficSource__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_5_3__1__Impl_in_rule__TrafficSource__Group_5_3__129543);
+            rule__TrafficSource__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5_3__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14836:1: rule__TrafficSource__Group_5_3__1__Impl : ( ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__TrafficSource__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14840:1: ( ( ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14841:1: ( ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14841:1: ( ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14842:1: ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14843:1: ( rule__TrafficSource__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14843:2: rule__TrafficSource__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__AlternativeNamesAssignment_5_3_1_in_rule__TrafficSource__Group_5_3__1__Impl29570);
+            rule__TrafficSource__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14857:1: rule__TrafficSource__Group_6__0 : rule__TrafficSource__Group_6__0__Impl rule__TrafficSource__Group_6__1 ;
+    public final void rule__TrafficSource__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14861:1: ( rule__TrafficSource__Group_6__0__Impl rule__TrafficSource__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14862:2: rule__TrafficSource__Group_6__0__Impl rule__TrafficSource__Group_6__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__0__Impl_in_rule__TrafficSource__Group_6__029604);
+            rule__TrafficSource__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__1_in_rule__TrafficSource__Group_6__029607);
+            rule__TrafficSource__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14869:1: rule__TrafficSource__Group_6__0__Impl : ( 'addresses' ) ;
+    public final void rule__TrafficSource__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14873:1: ( ( 'addresses' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14874:1: ( 'addresses' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14874:1: ( 'addresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14875:1: 'addresses'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); 
+            match(input,106,FollowSets001.FOLLOW_106_in_rule__TrafficSource__Group_6__0__Impl29635); 
+             after(grammarAccess.getTrafficSourceAccess().getAddressesKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14888:1: rule__TrafficSource__Group_6__1 : rule__TrafficSource__Group_6__1__Impl rule__TrafficSource__Group_6__2 ;
+    public final void rule__TrafficSource__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14892:1: ( rule__TrafficSource__Group_6__1__Impl rule__TrafficSource__Group_6__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14893:2: rule__TrafficSource__Group_6__1__Impl rule__TrafficSource__Group_6__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__1__Impl_in_rule__TrafficSource__Group_6__129666);
+            rule__TrafficSource__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__2_in_rule__TrafficSource__Group_6__129669);
+            rule__TrafficSource__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14900:1: rule__TrafficSource__Group_6__1__Impl : ( '{' ) ;
+    public final void rule__TrafficSource__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14904:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14905:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14905:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14906:1: '{'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__TrafficSource__Group_6__1__Impl29697); 
+             after(grammarAccess.getTrafficSourceAccess().getLeftCurlyBracketKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14919:1: rule__TrafficSource__Group_6__2 : rule__TrafficSource__Group_6__2__Impl rule__TrafficSource__Group_6__3 ;
+    public final void rule__TrafficSource__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14923:1: ( rule__TrafficSource__Group_6__2__Impl rule__TrafficSource__Group_6__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14924:2: rule__TrafficSource__Group_6__2__Impl rule__TrafficSource__Group_6__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__2__Impl_in_rule__TrafficSource__Group_6__229728);
+            rule__TrafficSource__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__3_in_rule__TrafficSource__Group_6__229731);
+            rule__TrafficSource__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__2"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14931:1: rule__TrafficSource__Group_6__2__Impl : ( ( rule__TrafficSource__AddressesAssignment_6_2 ) ) ;
+    public final void rule__TrafficSource__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14935:1: ( ( ( rule__TrafficSource__AddressesAssignment_6_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14936:1: ( ( rule__TrafficSource__AddressesAssignment_6_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14936:1: ( ( rule__TrafficSource__AddressesAssignment_6_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14937:1: ( rule__TrafficSource__AddressesAssignment_6_2 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14938:1: ( rule__TrafficSource__AddressesAssignment_6_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14938:2: rule__TrafficSource__AddressesAssignment_6_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__AddressesAssignment_6_2_in_rule__TrafficSource__Group_6__2__Impl29758);
+            rule__TrafficSource__AddressesAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14948:1: rule__TrafficSource__Group_6__3 : rule__TrafficSource__Group_6__3__Impl rule__TrafficSource__Group_6__4 ;
+    public final void rule__TrafficSource__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14952:1: ( rule__TrafficSource__Group_6__3__Impl rule__TrafficSource__Group_6__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14953:2: rule__TrafficSource__Group_6__3__Impl rule__TrafficSource__Group_6__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__3__Impl_in_rule__TrafficSource__Group_6__329788);
+            rule__TrafficSource__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__4_in_rule__TrafficSource__Group_6__329791);
+            rule__TrafficSource__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__3"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14960:1: rule__TrafficSource__Group_6__3__Impl : ( ( rule__TrafficSource__Group_6_3__0 )* ) ;
+    public final void rule__TrafficSource__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14964:1: ( ( ( rule__TrafficSource__Group_6_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14965:1: ( ( rule__TrafficSource__Group_6_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14965:1: ( ( rule__TrafficSource__Group_6_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14966:1: ( rule__TrafficSource__Group_6_3__0 )*
+            {
+             before(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14967:1: ( rule__TrafficSource__Group_6_3__0 )*
+            loop75:
+            do {
+                int alt75=2;
+                int LA75_0 = input.LA(1);
+
+                if ( (LA75_0==31) ) {
+                    alt75=1;
+                }
+
+
+                switch (alt75) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14967:2: rule__TrafficSource__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6_3__0_in_rule__TrafficSource__Group_6__3__Impl29818);
+            	    rule__TrafficSource__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop75;
+                }
+            } while (true);
+
+             after(grammarAccess.getTrafficSourceAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14977:1: rule__TrafficSource__Group_6__4 : rule__TrafficSource__Group_6__4__Impl ;
+    public final void rule__TrafficSource__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14981:1: ( rule__TrafficSource__Group_6__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14982:2: rule__TrafficSource__Group_6__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6__4__Impl_in_rule__TrafficSource__Group_6__429849);
+            rule__TrafficSource__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__4"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14988:1: rule__TrafficSource__Group_6__4__Impl : ( '}' ) ;
+    public final void rule__TrafficSource__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14992:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14993:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14993:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:14994:1: '}'
+            {
+             before(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__TrafficSource__Group_6__4__Impl29877); 
+             after(grammarAccess.getTrafficSourceAccess().getRightCurlyBracketKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15017:1: rule__TrafficSource__Group_6_3__0 : rule__TrafficSource__Group_6_3__0__Impl rule__TrafficSource__Group_6_3__1 ;
+    public final void rule__TrafficSource__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15021:1: ( rule__TrafficSource__Group_6_3__0__Impl rule__TrafficSource__Group_6_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15022:2: rule__TrafficSource__Group_6_3__0__Impl rule__TrafficSource__Group_6_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6_3__0__Impl_in_rule__TrafficSource__Group_6_3__029918);
+            rule__TrafficSource__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6_3__1_in_rule__TrafficSource__Group_6_3__029921);
+            rule__TrafficSource__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6_3__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15029:1: rule__TrafficSource__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__TrafficSource__Group_6_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15033:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15034:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15034:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15035:1: ','
+            {
+             before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__TrafficSource__Group_6_3__0__Impl29949); 
+             after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15048:1: rule__TrafficSource__Group_6_3__1 : rule__TrafficSource__Group_6_3__1__Impl ;
+    public final void rule__TrafficSource__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15052:1: ( rule__TrafficSource__Group_6_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15053:2: rule__TrafficSource__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_6_3__1__Impl_in_rule__TrafficSource__Group_6_3__129980);
+            rule__TrafficSource__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6_3__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_6_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15059:1: rule__TrafficSource__Group_6_3__1__Impl : ( ( rule__TrafficSource__AddressesAssignment_6_3_1 ) ) ;
+    public final void rule__TrafficSource__Group_6_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15063:1: ( ( ( rule__TrafficSource__AddressesAssignment_6_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15064:1: ( ( rule__TrafficSource__AddressesAssignment_6_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15064:1: ( ( rule__TrafficSource__AddressesAssignment_6_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15065:1: ( rule__TrafficSource__AddressesAssignment_6_3_1 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15066:1: ( rule__TrafficSource__AddressesAssignment_6_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15066:2: rule__TrafficSource__AddressesAssignment_6_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__AddressesAssignment_6_3_1_in_rule__TrafficSource__Group_6_3__1__Impl30007);
+            rule__TrafficSource__AddressesAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getAddressesAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_10__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15080:1: rule__TrafficSource__Group_10__0 : rule__TrafficSource__Group_10__0__Impl rule__TrafficSource__Group_10__1 ;
+    public final void rule__TrafficSource__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15084:1: ( rule__TrafficSource__Group_10__0__Impl rule__TrafficSource__Group_10__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15085:2: rule__TrafficSource__Group_10__0__Impl rule__TrafficSource__Group_10__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_10__0__Impl_in_rule__TrafficSource__Group_10__030041);
+            rule__TrafficSource__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_10__1_in_rule__TrafficSource__Group_10__030044);
+            rule__TrafficSource__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_10__0"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_10__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15092:1: rule__TrafficSource__Group_10__0__Impl : ( ',' ) ;
+    public final void rule__TrafficSource__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15096:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15097:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15097:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15098:1: ','
+            {
+             before(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__TrafficSource__Group_10__0__Impl30072); 
+             after(grammarAccess.getTrafficSourceAccess().getCommaKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_10__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15111:1: rule__TrafficSource__Group_10__1 : rule__TrafficSource__Group_10__1__Impl ;
+    public final void rule__TrafficSource__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15115:1: ( rule__TrafficSource__Group_10__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15116:2: rule__TrafficSource__Group_10__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__Group_10__1__Impl_in_rule__TrafficSource__Group_10__130103);
+            rule__TrafficSource__Group_10__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_10__1"
+
+
+    // $ANTLR start "rule__TrafficSource__Group_10__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15122:1: rule__TrafficSource__Group_10__1__Impl : ( ( rule__TrafficSource__WorkloadAssignment_10_1 ) ) ;
+    public final void rule__TrafficSource__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15126:1: ( ( ( rule__TrafficSource__WorkloadAssignment_10_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15127:1: ( ( rule__TrafficSource__WorkloadAssignment_10_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15127:1: ( ( rule__TrafficSource__WorkloadAssignment_10_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15128:1: ( rule__TrafficSource__WorkloadAssignment_10_1 )
+            {
+             before(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15129:1: ( rule__TrafficSource__WorkloadAssignment_10_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15129:2: rule__TrafficSource__WorkloadAssignment_10_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TrafficSource__WorkloadAssignment_10_1_in_rule__TrafficSource__Group_10__1__Impl30130);
+            rule__TrafficSource__WorkloadAssignment_10_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTrafficSourceAccess().getWorkloadAssignment_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15143:1: rule__GenericWorkload__Group__0 : rule__GenericWorkload__Group__0__Impl rule__GenericWorkload__Group__1 ;
+    public final void rule__GenericWorkload__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15147:1: ( rule__GenericWorkload__Group__0__Impl rule__GenericWorkload__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15148:2: rule__GenericWorkload__Group__0__Impl rule__GenericWorkload__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__0__Impl_in_rule__GenericWorkload__Group__030164);
+            rule__GenericWorkload__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__1_in_rule__GenericWorkload__Group__030167);
+            rule__GenericWorkload__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__0"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15155:1: rule__GenericWorkload__Group__0__Impl : ( () ) ;
+    public final void rule__GenericWorkload__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15159:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15160:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15160:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15161:1: ()
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15162:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15164:1: 
+            {
+            }
+
+             after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__0__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15174:1: rule__GenericWorkload__Group__1 : rule__GenericWorkload__Group__1__Impl rule__GenericWorkload__Group__2 ;
+    public final void rule__GenericWorkload__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15178:1: ( rule__GenericWorkload__Group__1__Impl rule__GenericWorkload__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15179:2: rule__GenericWorkload__Group__1__Impl rule__GenericWorkload__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__1__Impl_in_rule__GenericWorkload__Group__130225);
+            rule__GenericWorkload__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__2_in_rule__GenericWorkload__Group__130228);
+            rule__GenericWorkload__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__1"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15186:1: rule__GenericWorkload__Group__1__Impl : ( 'GenericWorkload' ) ;
+    public final void rule__GenericWorkload__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15190:1: ( ( 'GenericWorkload' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15191:1: ( 'GenericWorkload' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15191:1: ( 'GenericWorkload' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15192:1: 'GenericWorkload'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); 
+            match(input,107,FollowSets001.FOLLOW_107_in_rule__GenericWorkload__Group__1__Impl30256); 
+             after(grammarAccess.getGenericWorkloadAccess().getGenericWorkloadKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__1__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15205:1: rule__GenericWorkload__Group__2 : rule__GenericWorkload__Group__2__Impl rule__GenericWorkload__Group__3 ;
+    public final void rule__GenericWorkload__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15209:1: ( rule__GenericWorkload__Group__2__Impl rule__GenericWorkload__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15210:2: rule__GenericWorkload__Group__2__Impl rule__GenericWorkload__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__2__Impl_in_rule__GenericWorkload__Group__230287);
+            rule__GenericWorkload__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__3_in_rule__GenericWorkload__Group__230290);
+            rule__GenericWorkload__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__2"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15217:1: rule__GenericWorkload__Group__2__Impl : ( '{' ) ;
+    public final void rule__GenericWorkload__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15221:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15222:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15222:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15223:1: '{'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__GenericWorkload__Group__2__Impl30318); 
+             after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__2__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15236:1: rule__GenericWorkload__Group__3 : rule__GenericWorkload__Group__3__Impl rule__GenericWorkload__Group__4 ;
+    public final void rule__GenericWorkload__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15240:1: ( rule__GenericWorkload__Group__3__Impl rule__GenericWorkload__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15241:2: rule__GenericWorkload__Group__3__Impl rule__GenericWorkload__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__3__Impl_in_rule__GenericWorkload__Group__330349);
+            rule__GenericWorkload__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__4_in_rule__GenericWorkload__Group__330352);
+            rule__GenericWorkload__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__3"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15248:1: rule__GenericWorkload__Group__3__Impl : ( ( rule__GenericWorkload__Group_3__0 )? ) ;
+    public final void rule__GenericWorkload__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15252:1: ( ( ( rule__GenericWorkload__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15253:1: ( ( rule__GenericWorkload__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15253:1: ( ( rule__GenericWorkload__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15254:1: ( rule__GenericWorkload__Group_3__0 )?
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15255:1: ( rule__GenericWorkload__Group_3__0 )?
+            int alt76=2;
+            int LA76_0 = input.LA(1);
+
+            if ( (LA76_0==108) ) {
+                alt76=1;
+            }
+            switch (alt76) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15255:2: rule__GenericWorkload__Group_3__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__0_in_rule__GenericWorkload__Group__3__Impl30379);
+                    rule__GenericWorkload__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getGenericWorkloadAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__3__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15265:1: rule__GenericWorkload__Group__4 : rule__GenericWorkload__Group__4__Impl ;
+    public final void rule__GenericWorkload__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15269:1: ( rule__GenericWorkload__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15270:2: rule__GenericWorkload__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group__4__Impl_in_rule__GenericWorkload__Group__430410);
+            rule__GenericWorkload__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__4"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15276:1: rule__GenericWorkload__Group__4__Impl : ( '}' ) ;
+    public final void rule__GenericWorkload__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15280:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15281:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15281:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15282:1: '}'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__GenericWorkload__Group__4__Impl30438); 
+             after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group__4__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15305:1: rule__GenericWorkload__Group_3__0 : rule__GenericWorkload__Group_3__0__Impl rule__GenericWorkload__Group_3__1 ;
+    public final void rule__GenericWorkload__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15309:1: ( rule__GenericWorkload__Group_3__0__Impl rule__GenericWorkload__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15310:2: rule__GenericWorkload__Group_3__0__Impl rule__GenericWorkload__Group_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__0__Impl_in_rule__GenericWorkload__Group_3__030479);
+            rule__GenericWorkload__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__1_in_rule__GenericWorkload__Group_3__030482);
+            rule__GenericWorkload__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__0"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15317:1: rule__GenericWorkload__Group_3__0__Impl : ( 'actions' ) ;
+    public final void rule__GenericWorkload__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15321:1: ( ( 'actions' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15322:1: ( 'actions' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15322:1: ( 'actions' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15323:1: 'actions'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); 
+            match(input,108,FollowSets001.FOLLOW_108_in_rule__GenericWorkload__Group_3__0__Impl30510); 
+             after(grammarAccess.getGenericWorkloadAccess().getActionsKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15336:1: rule__GenericWorkload__Group_3__1 : rule__GenericWorkload__Group_3__1__Impl rule__GenericWorkload__Group_3__2 ;
+    public final void rule__GenericWorkload__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15340:1: ( rule__GenericWorkload__Group_3__1__Impl rule__GenericWorkload__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15341:2: rule__GenericWorkload__Group_3__1__Impl rule__GenericWorkload__Group_3__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__1__Impl_in_rule__GenericWorkload__Group_3__130541);
+            rule__GenericWorkload__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__2_in_rule__GenericWorkload__Group_3__130544);
+            rule__GenericWorkload__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__1"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15348:1: rule__GenericWorkload__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__GenericWorkload__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15352:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15353:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15353:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15354:1: '{'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__GenericWorkload__Group_3__1__Impl30572); 
+             after(grammarAccess.getGenericWorkloadAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15367:1: rule__GenericWorkload__Group_3__2 : rule__GenericWorkload__Group_3__2__Impl rule__GenericWorkload__Group_3__3 ;
+    public final void rule__GenericWorkload__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15371:1: ( rule__GenericWorkload__Group_3__2__Impl rule__GenericWorkload__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15372:2: rule__GenericWorkload__Group_3__2__Impl rule__GenericWorkload__Group_3__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__2__Impl_in_rule__GenericWorkload__Group_3__230603);
+            rule__GenericWorkload__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__3_in_rule__GenericWorkload__Group_3__230606);
+            rule__GenericWorkload__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__2"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15379:1: rule__GenericWorkload__Group_3__2__Impl : ( ( rule__GenericWorkload__ActionsAssignment_3_2 ) ) ;
+    public final void rule__GenericWorkload__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15383:1: ( ( ( rule__GenericWorkload__ActionsAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15384:1: ( ( rule__GenericWorkload__ActionsAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15384:1: ( ( rule__GenericWorkload__ActionsAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15385:1: ( rule__GenericWorkload__ActionsAssignment_3_2 )
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15386:1: ( rule__GenericWorkload__ActionsAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15386:2: rule__GenericWorkload__ActionsAssignment_3_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__ActionsAssignment_3_2_in_rule__GenericWorkload__Group_3__2__Impl30633);
+            rule__GenericWorkload__ActionsAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15396:1: rule__GenericWorkload__Group_3__3 : rule__GenericWorkload__Group_3__3__Impl rule__GenericWorkload__Group_3__4 ;
+    public final void rule__GenericWorkload__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15400:1: ( rule__GenericWorkload__Group_3__3__Impl rule__GenericWorkload__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15401:2: rule__GenericWorkload__Group_3__3__Impl rule__GenericWorkload__Group_3__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__3__Impl_in_rule__GenericWorkload__Group_3__330663);
+            rule__GenericWorkload__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__4_in_rule__GenericWorkload__Group_3__330666);
+            rule__GenericWorkload__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__3"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15408:1: rule__GenericWorkload__Group_3__3__Impl : ( ( rule__GenericWorkload__Group_3_3__0 )* ) ;
+    public final void rule__GenericWorkload__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15412:1: ( ( ( rule__GenericWorkload__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15413:1: ( ( rule__GenericWorkload__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15413:1: ( ( rule__GenericWorkload__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15414:1: ( rule__GenericWorkload__Group_3_3__0 )*
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15415:1: ( rule__GenericWorkload__Group_3_3__0 )*
+            loop77:
+            do {
+                int alt77=2;
+                int LA77_0 = input.LA(1);
+
+                if ( (LA77_0==31) ) {
+                    alt77=1;
+                }
+
+
+                switch (alt77) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15415:2: rule__GenericWorkload__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3_3__0_in_rule__GenericWorkload__Group_3__3__Impl30693);
+            	    rule__GenericWorkload__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop77;
+                }
+            } while (true);
+
+             after(grammarAccess.getGenericWorkloadAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15425:1: rule__GenericWorkload__Group_3__4 : rule__GenericWorkload__Group_3__4__Impl ;
+    public final void rule__GenericWorkload__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15429:1: ( rule__GenericWorkload__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15430:2: rule__GenericWorkload__Group_3__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3__4__Impl_in_rule__GenericWorkload__Group_3__430724);
+            rule__GenericWorkload__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__4"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15436:1: rule__GenericWorkload__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__GenericWorkload__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15440:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15441:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15441:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15442:1: '}'
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__GenericWorkload__Group_3__4__Impl30752); 
+             after(grammarAccess.getGenericWorkloadAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15465:1: rule__GenericWorkload__Group_3_3__0 : rule__GenericWorkload__Group_3_3__0__Impl rule__GenericWorkload__Group_3_3__1 ;
+    public final void rule__GenericWorkload__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15469:1: ( rule__GenericWorkload__Group_3_3__0__Impl rule__GenericWorkload__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15470:2: rule__GenericWorkload__Group_3_3__0__Impl rule__GenericWorkload__Group_3_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3_3__0__Impl_in_rule__GenericWorkload__Group_3_3__030793);
+            rule__GenericWorkload__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3_3__1_in_rule__GenericWorkload__Group_3_3__030796);
+            rule__GenericWorkload__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3_3__0"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15477:1: rule__GenericWorkload__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__GenericWorkload__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15481:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15482:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15482:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15483:1: ','
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__GenericWorkload__Group_3_3__0__Impl30824); 
+             after(grammarAccess.getGenericWorkloadAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15496:1: rule__GenericWorkload__Group_3_3__1 : rule__GenericWorkload__Group_3_3__1__Impl ;
+    public final void rule__GenericWorkload__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15500:1: ( rule__GenericWorkload__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15501:2: rule__GenericWorkload__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__Group_3_3__1__Impl_in_rule__GenericWorkload__Group_3_3__130855);
+            rule__GenericWorkload__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3_3__1"
+
+
+    // $ANTLR start "rule__GenericWorkload__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15507:1: rule__GenericWorkload__Group_3_3__1__Impl : ( ( rule__GenericWorkload__ActionsAssignment_3_3_1 ) ) ;
+    public final void rule__GenericWorkload__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15511:1: ( ( ( rule__GenericWorkload__ActionsAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15512:1: ( ( rule__GenericWorkload__ActionsAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15512:1: ( ( rule__GenericWorkload__ActionsAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15513:1: ( rule__GenericWorkload__ActionsAssignment_3_3_1 )
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15514:1: ( rule__GenericWorkload__ActionsAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15514:2: rule__GenericWorkload__ActionsAssignment_3_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__GenericWorkload__ActionsAssignment_3_3_1_in_rule__GenericWorkload__Group_3_3__1__Impl30882);
+            rule__GenericWorkload__ActionsAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGenericWorkloadAccess().getActionsAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15528:1: rule__BranchAction__Group__0 : rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1 ;
+    public final void rule__BranchAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15532:1: ( rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15533:2: rule__BranchAction__Group__0__Impl rule__BranchAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__0__Impl_in_rule__BranchAction__Group__030916);
+            rule__BranchAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__1_in_rule__BranchAction__Group__030919);
+            rule__BranchAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__0"
+
+
+    // $ANTLR start "rule__BranchAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15540:1: rule__BranchAction__Group__0__Impl : ( 'BranchAction' ) ;
+    public final void rule__BranchAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15544:1: ( ( 'BranchAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15545:1: ( 'BranchAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15545:1: ( 'BranchAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15546:1: 'BranchAction'
+            {
+             before(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); 
+            match(input,109,FollowSets001.FOLLOW_109_in_rule__BranchAction__Group__0__Impl30947); 
+             after(grammarAccess.getBranchActionAccess().getBranchActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15559:1: rule__BranchAction__Group__1 : rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2 ;
+    public final void rule__BranchAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15563:1: ( rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15564:2: rule__BranchAction__Group__1__Impl rule__BranchAction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__1__Impl_in_rule__BranchAction__Group__130978);
+            rule__BranchAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__2_in_rule__BranchAction__Group__130981);
+            rule__BranchAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__1"
+
+
+    // $ANTLR start "rule__BranchAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15571:1: rule__BranchAction__Group__1__Impl : ( '{' ) ;
+    public final void rule__BranchAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15575:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15576:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15576:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15577:1: '{'
+            {
+             before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__BranchAction__Group__1__Impl31009); 
+             after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15590:1: rule__BranchAction__Group__2 : rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3 ;
+    public final void rule__BranchAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15594:1: ( rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15595:2: rule__BranchAction__Group__2__Impl rule__BranchAction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__2__Impl_in_rule__BranchAction__Group__231040);
+            rule__BranchAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__3_in_rule__BranchAction__Group__231043);
+            rule__BranchAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__2"
+
+
+    // $ANTLR start "rule__BranchAction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15602:1: rule__BranchAction__Group__2__Impl : ( 'intern' ) ;
+    public final void rule__BranchAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15606:1: ( ( 'intern' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15607:1: ( 'intern' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15607:1: ( 'intern' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15608:1: 'intern'
+            {
+             before(grammarAccess.getBranchActionAccess().getInternKeyword_2()); 
+            match(input,110,FollowSets001.FOLLOW_110_in_rule__BranchAction__Group__2__Impl31071); 
+             after(grammarAccess.getBranchActionAccess().getInternKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15621:1: rule__BranchAction__Group__3 : rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4 ;
+    public final void rule__BranchAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15625:1: ( rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15626:2: rule__BranchAction__Group__3__Impl rule__BranchAction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__3__Impl_in_rule__BranchAction__Group__331102);
+            rule__BranchAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__4_in_rule__BranchAction__Group__331105);
+            rule__BranchAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__3"
+
+
+    // $ANTLR start "rule__BranchAction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15633:1: rule__BranchAction__Group__3__Impl : ( '{' ) ;
+    public final void rule__BranchAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15637:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15638:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15638:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15639:1: '{'
+            {
+             before(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__BranchAction__Group__3__Impl31133); 
+             after(grammarAccess.getBranchActionAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15652:1: rule__BranchAction__Group__4 : rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5 ;
+    public final void rule__BranchAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15656:1: ( rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15657:2: rule__BranchAction__Group__4__Impl rule__BranchAction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__4__Impl_in_rule__BranchAction__Group__431164);
+            rule__BranchAction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__5_in_rule__BranchAction__Group__431167);
+            rule__BranchAction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__4"
+
+
+    // $ANTLR start "rule__BranchAction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15664:1: rule__BranchAction__Group__4__Impl : ( ( rule__BranchAction__InternAssignment_4 ) ) ;
+    public final void rule__BranchAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15668:1: ( ( ( rule__BranchAction__InternAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15669:1: ( ( rule__BranchAction__InternAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15669:1: ( ( rule__BranchAction__InternAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15670:1: ( rule__BranchAction__InternAssignment_4 )
+            {
+             before(grammarAccess.getBranchActionAccess().getInternAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15671:1: ( rule__BranchAction__InternAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15671:2: rule__BranchAction__InternAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__InternAssignment_4_in_rule__BranchAction__Group__4__Impl31194);
+            rule__BranchAction__InternAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getInternAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15681:1: rule__BranchAction__Group__5 : rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6 ;
+    public final void rule__BranchAction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15685:1: ( rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15686:2: rule__BranchAction__Group__5__Impl rule__BranchAction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__5__Impl_in_rule__BranchAction__Group__531224);
+            rule__BranchAction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__6_in_rule__BranchAction__Group__531227);
+            rule__BranchAction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__5"
+
+
+    // $ANTLR start "rule__BranchAction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15693:1: rule__BranchAction__Group__5__Impl : ( ( rule__BranchAction__Group_5__0 )* ) ;
+    public final void rule__BranchAction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15697:1: ( ( ( rule__BranchAction__Group_5__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15698:1: ( ( rule__BranchAction__Group_5__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15698:1: ( ( rule__BranchAction__Group_5__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15699:1: ( rule__BranchAction__Group_5__0 )*
+            {
+             before(grammarAccess.getBranchActionAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15700:1: ( rule__BranchAction__Group_5__0 )*
+            loop78:
+            do {
+                int alt78=2;
+                int LA78_0 = input.LA(1);
+
+                if ( (LA78_0==31) ) {
+                    alt78=1;
+                }
+
+
+                switch (alt78) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15700:2: rule__BranchAction__Group_5__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group_5__0_in_rule__BranchAction__Group__5__Impl31254);
+            	    rule__BranchAction__Group_5__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop78;
+                }
+            } while (true);
+
+             after(grammarAccess.getBranchActionAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15710:1: rule__BranchAction__Group__6 : rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7 ;
+    public final void rule__BranchAction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15714:1: ( rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15715:2: rule__BranchAction__Group__6__Impl rule__BranchAction__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__6__Impl_in_rule__BranchAction__Group__631285);
+            rule__BranchAction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__7_in_rule__BranchAction__Group__631288);
+            rule__BranchAction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__6"
+
+
+    // $ANTLR start "rule__BranchAction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15722:1: rule__BranchAction__Group__6__Impl : ( '}' ) ;
+    public final void rule__BranchAction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15726:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15727:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15727:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15728:1: '}'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__BranchAction__Group__6__Impl31316); 
+             after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15741:1: rule__BranchAction__Group__7 : rule__BranchAction__Group__7__Impl ;
+    public final void rule__BranchAction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15745:1: ( rule__BranchAction__Group__7__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15746:2: rule__BranchAction__Group__7__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group__7__Impl_in_rule__BranchAction__Group__731347);
+            rule__BranchAction__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__7"
+
+
+    // $ANTLR start "rule__BranchAction__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15752:1: rule__BranchAction__Group__7__Impl : ( '}' ) ;
+    public final void rule__BranchAction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15756:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15757:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15757:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15758:1: '}'
+            {
+             before(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__BranchAction__Group__7__Impl31375); 
+             after(grammarAccess.getBranchActionAccess().getRightCurlyBracketKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15787:1: rule__BranchAction__Group_5__0 : rule__BranchAction__Group_5__0__Impl rule__BranchAction__Group_5__1 ;
+    public final void rule__BranchAction__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15791:1: ( rule__BranchAction__Group_5__0__Impl rule__BranchAction__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15792:2: rule__BranchAction__Group_5__0__Impl rule__BranchAction__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group_5__0__Impl_in_rule__BranchAction__Group_5__031422);
+            rule__BranchAction__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group_5__1_in_rule__BranchAction__Group_5__031425);
+            rule__BranchAction__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_5__0"
+
+
+    // $ANTLR start "rule__BranchAction__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15799:1: rule__BranchAction__Group_5__0__Impl : ( ',' ) ;
+    public final void rule__BranchAction__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15803:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15804:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15804:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15805:1: ','
+            {
+             before(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__BranchAction__Group_5__0__Impl31453); 
+             after(grammarAccess.getBranchActionAccess().getCommaKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__BranchAction__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15818:1: rule__BranchAction__Group_5__1 : rule__BranchAction__Group_5__1__Impl ;
+    public final void rule__BranchAction__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15822:1: ( rule__BranchAction__Group_5__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15823:2: rule__BranchAction__Group_5__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__Group_5__1__Impl_in_rule__BranchAction__Group_5__131484);
+            rule__BranchAction__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_5__1"
+
+
+    // $ANTLR start "rule__BranchAction__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15829:1: rule__BranchAction__Group_5__1__Impl : ( ( rule__BranchAction__InternAssignment_5_1 ) ) ;
+    public final void rule__BranchAction__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15833:1: ( ( ( rule__BranchAction__InternAssignment_5_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15834:1: ( ( rule__BranchAction__InternAssignment_5_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15834:1: ( ( rule__BranchAction__InternAssignment_5_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15835:1: ( rule__BranchAction__InternAssignment_5_1 )
+            {
+             before(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15836:1: ( rule__BranchAction__InternAssignment_5_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15836:2: rule__BranchAction__InternAssignment_5_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__BranchAction__InternAssignment_5_1_in_rule__BranchAction__Group_5__1__Impl31511);
+            rule__BranchAction__InternAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBranchActionAccess().getInternAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15850:1: rule__LoopAction__Group__0 : rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1 ;
+    public final void rule__LoopAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15854:1: ( rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15855:2: rule__LoopAction__Group__0__Impl rule__LoopAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__0__Impl_in_rule__LoopAction__Group__031545);
+            rule__LoopAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__1_in_rule__LoopAction__Group__031548);
+            rule__LoopAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__0"
+
+
+    // $ANTLR start "rule__LoopAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15862:1: rule__LoopAction__Group__0__Impl : ( 'LoopAction' ) ;
+    public final void rule__LoopAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15866:1: ( ( 'LoopAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15867:1: ( 'LoopAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15867:1: ( 'LoopAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15868:1: 'LoopAction'
+            {
+             before(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); 
+            match(input,111,FollowSets001.FOLLOW_111_in_rule__LoopAction__Group__0__Impl31576); 
+             after(grammarAccess.getLoopActionAccess().getLoopActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15881:1: rule__LoopAction__Group__1 : rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2 ;
+    public final void rule__LoopAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15885:1: ( rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15886:2: rule__LoopAction__Group__1__Impl rule__LoopAction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__1__Impl_in_rule__LoopAction__Group__131607);
+            rule__LoopAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__2_in_rule__LoopAction__Group__131610);
+            rule__LoopAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__1"
+
+
+    // $ANTLR start "rule__LoopAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15893:1: rule__LoopAction__Group__1__Impl : ( '{' ) ;
+    public final void rule__LoopAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15897:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15898:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15898:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15899:1: '{'
+            {
+             before(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__LoopAction__Group__1__Impl31638); 
+             after(grammarAccess.getLoopActionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15912:1: rule__LoopAction__Group__2 : rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3 ;
+    public final void rule__LoopAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15916:1: ( rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15917:2: rule__LoopAction__Group__2__Impl rule__LoopAction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__2__Impl_in_rule__LoopAction__Group__231669);
+            rule__LoopAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__3_in_rule__LoopAction__Group__231672);
+            rule__LoopAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__2"
+
+
+    // $ANTLR start "rule__LoopAction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15924:1: rule__LoopAction__Group__2__Impl : ( 'intern' ) ;
+    public final void rule__LoopAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15928:1: ( ( 'intern' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15929:1: ( 'intern' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15929:1: ( 'intern' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15930:1: 'intern'
+            {
+             before(grammarAccess.getLoopActionAccess().getInternKeyword_2()); 
+            match(input,110,FollowSets001.FOLLOW_110_in_rule__LoopAction__Group__2__Impl31700); 
+             after(grammarAccess.getLoopActionAccess().getInternKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15943:1: rule__LoopAction__Group__3 : rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4 ;
+    public final void rule__LoopAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15947:1: ( rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15948:2: rule__LoopAction__Group__3__Impl rule__LoopAction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__3__Impl_in_rule__LoopAction__Group__331731);
+            rule__LoopAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__4_in_rule__LoopAction__Group__331734);
+            rule__LoopAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__3"
+
+
+    // $ANTLR start "rule__LoopAction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15955:1: rule__LoopAction__Group__3__Impl : ( ( rule__LoopAction__InternAssignment_3 ) ) ;
+    public final void rule__LoopAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15959:1: ( ( ( rule__LoopAction__InternAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15960:1: ( ( rule__LoopAction__InternAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15960:1: ( ( rule__LoopAction__InternAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15961:1: ( rule__LoopAction__InternAssignment_3 )
+            {
+             before(grammarAccess.getLoopActionAccess().getInternAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15962:1: ( rule__LoopAction__InternAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15962:2: rule__LoopAction__InternAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__InternAssignment_3_in_rule__LoopAction__Group__3__Impl31761);
+            rule__LoopAction__InternAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getInternAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15972:1: rule__LoopAction__Group__4 : rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5 ;
+    public final void rule__LoopAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15976:1: ( rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15977:2: rule__LoopAction__Group__4__Impl rule__LoopAction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__4__Impl_in_rule__LoopAction__Group__431791);
+            rule__LoopAction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__5_in_rule__LoopAction__Group__431794);
+            rule__LoopAction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__4"
+
+
+    // $ANTLR start "rule__LoopAction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15984:1: rule__LoopAction__Group__4__Impl : ( 'numIterations' ) ;
+    public final void rule__LoopAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15988:1: ( ( 'numIterations' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15989:1: ( 'numIterations' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15989:1: ( 'numIterations' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:15990:1: 'numIterations'
+            {
+             before(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); 
+            match(input,112,FollowSets001.FOLLOW_112_in_rule__LoopAction__Group__4__Impl31822); 
+             after(grammarAccess.getLoopActionAccess().getNumIterationsKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16003:1: rule__LoopAction__Group__5 : rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6 ;
+    public final void rule__LoopAction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16007:1: ( rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16008:2: rule__LoopAction__Group__5__Impl rule__LoopAction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__5__Impl_in_rule__LoopAction__Group__531853);
+            rule__LoopAction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__6_in_rule__LoopAction__Group__531856);
+            rule__LoopAction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__5"
+
+
+    // $ANTLR start "rule__LoopAction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16015:1: rule__LoopAction__Group__5__Impl : ( ( rule__LoopAction__NumIterationsAssignment_5 ) ) ;
+    public final void rule__LoopAction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16019:1: ( ( ( rule__LoopAction__NumIterationsAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16020:1: ( ( rule__LoopAction__NumIterationsAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16020:1: ( ( rule__LoopAction__NumIterationsAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16021:1: ( rule__LoopAction__NumIterationsAssignment_5 )
+            {
+             before(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16022:1: ( rule__LoopAction__NumIterationsAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16022:2: rule__LoopAction__NumIterationsAssignment_5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__NumIterationsAssignment_5_in_rule__LoopAction__Group__5__Impl31883);
+            rule__LoopAction__NumIterationsAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopActionAccess().getNumIterationsAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__LoopAction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16032:1: rule__LoopAction__Group__6 : rule__LoopAction__Group__6__Impl ;
+    public final void rule__LoopAction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16036:1: ( rule__LoopAction__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16037:2: rule__LoopAction__Group__6__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__LoopAction__Group__6__Impl_in_rule__LoopAction__Group__631913);
+            rule__LoopAction__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__6"
+
+
+    // $ANTLR start "rule__LoopAction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16043:1: rule__LoopAction__Group__6__Impl : ( '}' ) ;
+    public final void rule__LoopAction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16047:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16048:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16048:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16049:1: '}'
+            {
+             before(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__LoopAction__Group__6__Impl31941); 
+             after(grammarAccess.getLoopActionAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16076:1: rule__SequenceAction__Group__0 : rule__SequenceAction__Group__0__Impl rule__SequenceAction__Group__1 ;
+    public final void rule__SequenceAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16080:1: ( rule__SequenceAction__Group__0__Impl rule__SequenceAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16081:2: rule__SequenceAction__Group__0__Impl rule__SequenceAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__0__Impl_in_rule__SequenceAction__Group__031986);
+            rule__SequenceAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__1_in_rule__SequenceAction__Group__031989);
+            rule__SequenceAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__0"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16088:1: rule__SequenceAction__Group__0__Impl : ( 'SequenceAction' ) ;
+    public final void rule__SequenceAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16092:1: ( ( 'SequenceAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16093:1: ( 'SequenceAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16093:1: ( 'SequenceAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16094:1: 'SequenceAction'
+            {
+             before(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); 
+            match(input,113,FollowSets001.FOLLOW_113_in_rule__SequenceAction__Group__0__Impl32017); 
+             after(grammarAccess.getSequenceActionAccess().getSequenceActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16107:1: rule__SequenceAction__Group__1 : rule__SequenceAction__Group__1__Impl rule__SequenceAction__Group__2 ;
+    public final void rule__SequenceAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16111:1: ( rule__SequenceAction__Group__1__Impl rule__SequenceAction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16112:2: rule__SequenceAction__Group__1__Impl rule__SequenceAction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__1__Impl_in_rule__SequenceAction__Group__132048);
+            rule__SequenceAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__2_in_rule__SequenceAction__Group__132051);
+            rule__SequenceAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__1"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16119:1: rule__SequenceAction__Group__1__Impl : ( '{' ) ;
+    public final void rule__SequenceAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16123:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16124:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16124:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16125:1: '{'
+            {
+             before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__SequenceAction__Group__1__Impl32079); 
+             after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16138:1: rule__SequenceAction__Group__2 : rule__SequenceAction__Group__2__Impl rule__SequenceAction__Group__3 ;
+    public final void rule__SequenceAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16142:1: ( rule__SequenceAction__Group__2__Impl rule__SequenceAction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16143:2: rule__SequenceAction__Group__2__Impl rule__SequenceAction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__2__Impl_in_rule__SequenceAction__Group__232110);
+            rule__SequenceAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__3_in_rule__SequenceAction__Group__232113);
+            rule__SequenceAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__2"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16150:1: rule__SequenceAction__Group__2__Impl : ( 'intern' ) ;
+    public final void rule__SequenceAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16154:1: ( ( 'intern' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16155:1: ( 'intern' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16155:1: ( 'intern' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16156:1: 'intern'
+            {
+             before(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); 
+            match(input,110,FollowSets001.FOLLOW_110_in_rule__SequenceAction__Group__2__Impl32141); 
+             after(grammarAccess.getSequenceActionAccess().getInternKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16169:1: rule__SequenceAction__Group__3 : rule__SequenceAction__Group__3__Impl rule__SequenceAction__Group__4 ;
+    public final void rule__SequenceAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16173:1: ( rule__SequenceAction__Group__3__Impl rule__SequenceAction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16174:2: rule__SequenceAction__Group__3__Impl rule__SequenceAction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__3__Impl_in_rule__SequenceAction__Group__332172);
+            rule__SequenceAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__4_in_rule__SequenceAction__Group__332175);
+            rule__SequenceAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__3"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16181:1: rule__SequenceAction__Group__3__Impl : ( '{' ) ;
+    public final void rule__SequenceAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16185:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16186:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16186:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16187:1: '{'
+            {
+             before(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__SequenceAction__Group__3__Impl32203); 
+             after(grammarAccess.getSequenceActionAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16200:1: rule__SequenceAction__Group__4 : rule__SequenceAction__Group__4__Impl rule__SequenceAction__Group__5 ;
+    public final void rule__SequenceAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16204:1: ( rule__SequenceAction__Group__4__Impl rule__SequenceAction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16205:2: rule__SequenceAction__Group__4__Impl rule__SequenceAction__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__4__Impl_in_rule__SequenceAction__Group__432234);
+            rule__SequenceAction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__5_in_rule__SequenceAction__Group__432237);
+            rule__SequenceAction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__4"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16212:1: rule__SequenceAction__Group__4__Impl : ( ( rule__SequenceAction__InternAssignment_4 ) ) ;
+    public final void rule__SequenceAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16216:1: ( ( ( rule__SequenceAction__InternAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16217:1: ( ( rule__SequenceAction__InternAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16217:1: ( ( rule__SequenceAction__InternAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16218:1: ( rule__SequenceAction__InternAssignment_4 )
+            {
+             before(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16219:1: ( rule__SequenceAction__InternAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16219:2: rule__SequenceAction__InternAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__InternAssignment_4_in_rule__SequenceAction__Group__4__Impl32264);
+            rule__SequenceAction__InternAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceActionAccess().getInternAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16229:1: rule__SequenceAction__Group__5 : rule__SequenceAction__Group__5__Impl rule__SequenceAction__Group__6 ;
+    public final void rule__SequenceAction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16233:1: ( rule__SequenceAction__Group__5__Impl rule__SequenceAction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16234:2: rule__SequenceAction__Group__5__Impl rule__SequenceAction__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__5__Impl_in_rule__SequenceAction__Group__532294);
+            rule__SequenceAction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__6_in_rule__SequenceAction__Group__532297);
+            rule__SequenceAction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__5"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16241:1: rule__SequenceAction__Group__5__Impl : ( ( rule__SequenceAction__Group_5__0 )* ) ;
+    public final void rule__SequenceAction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16245:1: ( ( ( rule__SequenceAction__Group_5__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16246:1: ( ( rule__SequenceAction__Group_5__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16246:1: ( ( rule__SequenceAction__Group_5__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16247:1: ( rule__SequenceAction__Group_5__0 )*
+            {
+             before(grammarAccess.getSequenceActionAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16248:1: ( rule__SequenceAction__Group_5__0 )*
+            loop79:
+            do {
+                int alt79=2;
+                int LA79_0 = input.LA(1);
+
+                if ( (LA79_0==31) ) {
+                    alt79=1;
+                }
+
+
+                switch (alt79) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16248:2: rule__SequenceAction__Group_5__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group_5__0_in_rule__SequenceAction__Group__5__Impl32324);
+            	    rule__SequenceAction__Group_5__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop79;
+                }
+            } while (true);
+
+             after(grammarAccess.getSequenceActionAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16258:1: rule__SequenceAction__Group__6 : rule__SequenceAction__Group__6__Impl rule__SequenceAction__Group__7 ;
+    public final void rule__SequenceAction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16262:1: ( rule__SequenceAction__Group__6__Impl rule__SequenceAction__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16263:2: rule__SequenceAction__Group__6__Impl rule__SequenceAction__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__6__Impl_in_rule__SequenceAction__Group__632355);
+            rule__SequenceAction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__7_in_rule__SequenceAction__Group__632358);
+            rule__SequenceAction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__6"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16270:1: rule__SequenceAction__Group__6__Impl : ( '}' ) ;
+    public final void rule__SequenceAction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16274:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16275:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16275:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16276:1: '}'
+            {
+             before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__SequenceAction__Group__6__Impl32386); 
+             after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16289:1: rule__SequenceAction__Group__7 : rule__SequenceAction__Group__7__Impl ;
+    public final void rule__SequenceAction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16293:1: ( rule__SequenceAction__Group__7__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16294:2: rule__SequenceAction__Group__7__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group__7__Impl_in_rule__SequenceAction__Group__732417);
+            rule__SequenceAction__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__7"
+
+
+    // $ANTLR start "rule__SequenceAction__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16300:1: rule__SequenceAction__Group__7__Impl : ( '}' ) ;
+    public final void rule__SequenceAction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16304:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16305:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16305:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16306:1: '}'
+            {
+             before(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__SequenceAction__Group__7__Impl32445); 
+             after(grammarAccess.getSequenceActionAccess().getRightCurlyBracketKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16335:1: rule__SequenceAction__Group_5__0 : rule__SequenceAction__Group_5__0__Impl rule__SequenceAction__Group_5__1 ;
+    public final void rule__SequenceAction__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16339:1: ( rule__SequenceAction__Group_5__0__Impl rule__SequenceAction__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16340:2: rule__SequenceAction__Group_5__0__Impl rule__SequenceAction__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group_5__0__Impl_in_rule__SequenceAction__Group_5__032492);
+            rule__SequenceAction__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group_5__1_in_rule__SequenceAction__Group_5__032495);
+            rule__SequenceAction__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group_5__0"
+
+
+    // $ANTLR start "rule__SequenceAction__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16347:1: rule__SequenceAction__Group_5__0__Impl : ( ',' ) ;
+    public final void rule__SequenceAction__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16351:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16352:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16352:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16353:1: ','
+            {
+             before(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__SequenceAction__Group_5__0__Impl32523); 
+             after(grammarAccess.getSequenceActionAccess().getCommaKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__SequenceAction__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16366:1: rule__SequenceAction__Group_5__1 : rule__SequenceAction__Group_5__1__Impl ;
+    public final void rule__SequenceAction__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16370:1: ( rule__SequenceAction__Group_5__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16371:2: rule__SequenceAction__Group_5__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__Group_5__1__Impl_in_rule__SequenceAction__Group_5__132554);
+            rule__SequenceAction__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group_5__1"
+
+
+    // $ANTLR start "rule__SequenceAction__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16377:1: rule__SequenceAction__Group_5__1__Impl : ( ( rule__SequenceAction__InternAssignment_5_1 ) ) ;
+    public final void rule__SequenceAction__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16381:1: ( ( ( rule__SequenceAction__InternAssignment_5_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16382:1: ( ( rule__SequenceAction__InternAssignment_5_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16382:1: ( ( rule__SequenceAction__InternAssignment_5_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16383:1: ( rule__SequenceAction__InternAssignment_5_1 )
+            {
+             before(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16384:1: ( rule__SequenceAction__InternAssignment_5_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16384:2: rule__SequenceAction__InternAssignment_5_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__SequenceAction__InternAssignment_5_1_in_rule__SequenceAction__Group_5__1__Impl32581);
+            rule__SequenceAction__InternAssignment_5_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceActionAccess().getInternAssignment_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16398:1: rule__StartAction__Group__0 : rule__StartAction__Group__0__Impl rule__StartAction__Group__1 ;
+    public final void rule__StartAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16402:1: ( rule__StartAction__Group__0__Impl rule__StartAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16403:2: rule__StartAction__Group__0__Impl rule__StartAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__StartAction__Group__0__Impl_in_rule__StartAction__Group__032615);
+            rule__StartAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__StartAction__Group__1_in_rule__StartAction__Group__032618);
+            rule__StartAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__0"
+
+
+    // $ANTLR start "rule__StartAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16410:1: rule__StartAction__Group__0__Impl : ( () ) ;
+    public final void rule__StartAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16414:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16415:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16415:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16416:1: ()
+            {
+             before(grammarAccess.getStartActionAccess().getStartActionAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16417:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16419:1: 
+            {
+            }
+
+             after(grammarAccess.getStartActionAccess().getStartActionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StartAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16429:1: rule__StartAction__Group__1 : rule__StartAction__Group__1__Impl ;
+    public final void rule__StartAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16433:1: ( rule__StartAction__Group__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16434:2: rule__StartAction__Group__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__StartAction__Group__1__Impl_in_rule__StartAction__Group__132676);
+            rule__StartAction__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__1"
+
+
+    // $ANTLR start "rule__StartAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16440:1: rule__StartAction__Group__1__Impl : ( 'StartAction' ) ;
+    public final void rule__StartAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16444:1: ( ( 'StartAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16445:1: ( 'StartAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16445:1: ( 'StartAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16446:1: 'StartAction'
+            {
+             before(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); 
+            match(input,114,FollowSets001.FOLLOW_114_in_rule__StartAction__Group__1__Impl32704); 
+             after(grammarAccess.getStartActionAccess().getStartActionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16463:1: rule__StopAction__Group__0 : rule__StopAction__Group__0__Impl rule__StopAction__Group__1 ;
+    public final void rule__StopAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16467:1: ( rule__StopAction__Group__0__Impl rule__StopAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16468:2: rule__StopAction__Group__0__Impl rule__StopAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__StopAction__Group__0__Impl_in_rule__StopAction__Group__032739);
+            rule__StopAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__StopAction__Group__1_in_rule__StopAction__Group__032742);
+            rule__StopAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__0"
+
+
+    // $ANTLR start "rule__StopAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16475:1: rule__StopAction__Group__0__Impl : ( () ) ;
+    public final void rule__StopAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16479:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16480:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16480:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16481:1: ()
+            {
+             before(grammarAccess.getStopActionAccess().getStopActionAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16482:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16484:1: 
+            {
+            }
+
+             after(grammarAccess.getStopActionAccess().getStopActionAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StopAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16494:1: rule__StopAction__Group__1 : rule__StopAction__Group__1__Impl ;
+    public final void rule__StopAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16498:1: ( rule__StopAction__Group__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16499:2: rule__StopAction__Group__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__StopAction__Group__1__Impl_in_rule__StopAction__Group__132800);
+            rule__StopAction__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__1"
+
+
+    // $ANTLR start "rule__StopAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16505:1: rule__StopAction__Group__1__Impl : ( 'StopAction' ) ;
+    public final void rule__StopAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16509:1: ( ( 'StopAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16510:1: ( 'StopAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16510:1: ( 'StopAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16511:1: 'StopAction'
+            {
+             before(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); 
+            match(input,115,FollowSets001.FOLLOW_115_in_rule__StopAction__Group__1__Impl32828); 
+             after(grammarAccess.getStopActionAccess().getStopActionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StopAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16528:1: rule__TransmitAction__Group__0 : rule__TransmitAction__Group__0__Impl rule__TransmitAction__Group__1 ;
+    public final void rule__TransmitAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16532:1: ( rule__TransmitAction__Group__0__Impl rule__TransmitAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16533:2: rule__TransmitAction__Group__0__Impl rule__TransmitAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__0__Impl_in_rule__TransmitAction__Group__032863);
+            rule__TransmitAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__1_in_rule__TransmitAction__Group__032866);
+            rule__TransmitAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__0"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16540:1: rule__TransmitAction__Group__0__Impl : ( 'TransmitAction' ) ;
+    public final void rule__TransmitAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16544:1: ( ( 'TransmitAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16545:1: ( 'TransmitAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16545:1: ( 'TransmitAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16546:1: 'TransmitAction'
+            {
+             before(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); 
+            match(input,116,FollowSets001.FOLLOW_116_in_rule__TransmitAction__Group__0__Impl32894); 
+             after(grammarAccess.getTransmitActionAccess().getTransmitActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16559:1: rule__TransmitAction__Group__1 : rule__TransmitAction__Group__1__Impl rule__TransmitAction__Group__2 ;
+    public final void rule__TransmitAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16563:1: ( rule__TransmitAction__Group__1__Impl rule__TransmitAction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16564:2: rule__TransmitAction__Group__1__Impl rule__TransmitAction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__1__Impl_in_rule__TransmitAction__Group__132925);
+            rule__TransmitAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__2_in_rule__TransmitAction__Group__132928);
+            rule__TransmitAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__1"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16571:1: rule__TransmitAction__Group__1__Impl : ( '{' ) ;
+    public final void rule__TransmitAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16575:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16576:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16576:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16577:1: '{'
+            {
+             before(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__TransmitAction__Group__1__Impl32956); 
+             after(grammarAccess.getTransmitActionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16590:1: rule__TransmitAction__Group__2 : rule__TransmitAction__Group__2__Impl rule__TransmitAction__Group__3 ;
+    public final void rule__TransmitAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16594:1: ( rule__TransmitAction__Group__2__Impl rule__TransmitAction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16595:2: rule__TransmitAction__Group__2__Impl rule__TransmitAction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__2__Impl_in_rule__TransmitAction__Group__232987);
+            rule__TransmitAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__3_in_rule__TransmitAction__Group__232990);
+            rule__TransmitAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__2"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16602:1: rule__TransmitAction__Group__2__Impl : ( 'flow' ) ;
+    public final void rule__TransmitAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16606:1: ( ( 'flow' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16607:1: ( 'flow' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16607:1: ( 'flow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16608:1: 'flow'
+            {
+             before(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); 
+            match(input,117,FollowSets001.FOLLOW_117_in_rule__TransmitAction__Group__2__Impl33018); 
+             after(grammarAccess.getTransmitActionAccess().getFlowKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16621:1: rule__TransmitAction__Group__3 : rule__TransmitAction__Group__3__Impl rule__TransmitAction__Group__4 ;
+    public final void rule__TransmitAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16625:1: ( rule__TransmitAction__Group__3__Impl rule__TransmitAction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16626:2: rule__TransmitAction__Group__3__Impl rule__TransmitAction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__3__Impl_in_rule__TransmitAction__Group__333049);
+            rule__TransmitAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__4_in_rule__TransmitAction__Group__333052);
+            rule__TransmitAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__3"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16633:1: rule__TransmitAction__Group__3__Impl : ( ( rule__TransmitAction__FlowAssignment_3 ) ) ;
+    public final void rule__TransmitAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16637:1: ( ( ( rule__TransmitAction__FlowAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16638:1: ( ( rule__TransmitAction__FlowAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16638:1: ( ( rule__TransmitAction__FlowAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16639:1: ( rule__TransmitAction__FlowAssignment_3 )
+            {
+             before(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16640:1: ( rule__TransmitAction__FlowAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16640:2: rule__TransmitAction__FlowAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__FlowAssignment_3_in_rule__TransmitAction__Group__3__Impl33079);
+            rule__TransmitAction__FlowAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTransmitActionAccess().getFlowAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16650:1: rule__TransmitAction__Group__4 : rule__TransmitAction__Group__4__Impl ;
+    public final void rule__TransmitAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16654:1: ( rule__TransmitAction__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16655:2: rule__TransmitAction__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__TransmitAction__Group__4__Impl_in_rule__TransmitAction__Group__433109);
+            rule__TransmitAction__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__4"
+
+
+    // $ANTLR start "rule__TransmitAction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16661:1: rule__TransmitAction__Group__4__Impl : ( '}' ) ;
+    public final void rule__TransmitAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16665:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16666:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16666:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16667:1: '}'
+            {
+             before(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__TransmitAction__Group__4__Impl33137); 
+             after(grammarAccess.getTransmitActionAccess().getRightCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__WaitAction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16690:1: rule__WaitAction__Group__0 : rule__WaitAction__Group__0__Impl rule__WaitAction__Group__1 ;
+    public final void rule__WaitAction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16694:1: ( rule__WaitAction__Group__0__Impl rule__WaitAction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16695:2: rule__WaitAction__Group__0__Impl rule__WaitAction__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__0__Impl_in_rule__WaitAction__Group__033178);
+            rule__WaitAction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__1_in_rule__WaitAction__Group__033181);
+            rule__WaitAction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__0"
+
+
+    // $ANTLR start "rule__WaitAction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16702:1: rule__WaitAction__Group__0__Impl : ( 'WaitAction' ) ;
+    public final void rule__WaitAction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16706:1: ( ( 'WaitAction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16707:1: ( 'WaitAction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16707:1: ( 'WaitAction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16708:1: 'WaitAction'
+            {
+             before(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); 
+            match(input,118,FollowSets001.FOLLOW_118_in_rule__WaitAction__Group__0__Impl33209); 
+             after(grammarAccess.getWaitActionAccess().getWaitActionKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__WaitAction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16721:1: rule__WaitAction__Group__1 : rule__WaitAction__Group__1__Impl rule__WaitAction__Group__2 ;
+    public final void rule__WaitAction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16725:1: ( rule__WaitAction__Group__1__Impl rule__WaitAction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16726:2: rule__WaitAction__Group__1__Impl rule__WaitAction__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__1__Impl_in_rule__WaitAction__Group__133240);
+            rule__WaitAction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__2_in_rule__WaitAction__Group__133243);
+            rule__WaitAction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__1"
+
+
+    // $ANTLR start "rule__WaitAction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16733:1: rule__WaitAction__Group__1__Impl : ( '{' ) ;
+    public final void rule__WaitAction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16737:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16738:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16738:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16739:1: '{'
+            {
+             before(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__WaitAction__Group__1__Impl33271); 
+             after(grammarAccess.getWaitActionAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__WaitAction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16752:1: rule__WaitAction__Group__2 : rule__WaitAction__Group__2__Impl rule__WaitAction__Group__3 ;
+    public final void rule__WaitAction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16756:1: ( rule__WaitAction__Group__2__Impl rule__WaitAction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16757:2: rule__WaitAction__Group__2__Impl rule__WaitAction__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__2__Impl_in_rule__WaitAction__Group__233302);
+            rule__WaitAction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__3_in_rule__WaitAction__Group__233305);
+            rule__WaitAction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__2"
+
+
+    // $ANTLR start "rule__WaitAction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16764:1: rule__WaitAction__Group__2__Impl : ( 'waitTime' ) ;
+    public final void rule__WaitAction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16768:1: ( ( 'waitTime' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16769:1: ( 'waitTime' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16769:1: ( 'waitTime' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16770:1: 'waitTime'
+            {
+             before(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); 
+            match(input,119,FollowSets001.FOLLOW_119_in_rule__WaitAction__Group__2__Impl33333); 
+             after(grammarAccess.getWaitActionAccess().getWaitTimeKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__WaitAction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16783:1: rule__WaitAction__Group__3 : rule__WaitAction__Group__3__Impl rule__WaitAction__Group__4 ;
+    public final void rule__WaitAction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16787:1: ( rule__WaitAction__Group__3__Impl rule__WaitAction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16788:2: rule__WaitAction__Group__3__Impl rule__WaitAction__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__3__Impl_in_rule__WaitAction__Group__333364);
+            rule__WaitAction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__4_in_rule__WaitAction__Group__333367);
+            rule__WaitAction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__3"
+
+
+    // $ANTLR start "rule__WaitAction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16795:1: rule__WaitAction__Group__3__Impl : ( ( rule__WaitAction__WaitTimeAssignment_3 ) ) ;
+    public final void rule__WaitAction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16799:1: ( ( ( rule__WaitAction__WaitTimeAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16800:1: ( ( rule__WaitAction__WaitTimeAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16800:1: ( ( rule__WaitAction__WaitTimeAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16801:1: ( rule__WaitAction__WaitTimeAssignment_3 )
+            {
+             before(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16802:1: ( rule__WaitAction__WaitTimeAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16802:2: rule__WaitAction__WaitTimeAssignment_3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__WaitTimeAssignment_3_in_rule__WaitAction__Group__3__Impl33394);
+            rule__WaitAction__WaitTimeAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getWaitActionAccess().getWaitTimeAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__WaitAction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16812:1: rule__WaitAction__Group__4 : rule__WaitAction__Group__4__Impl ;
+    public final void rule__WaitAction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16816:1: ( rule__WaitAction__Group__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16817:2: rule__WaitAction__Group__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__WaitAction__Group__4__Impl_in_rule__WaitAction__Group__433424);
+            rule__WaitAction__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__4"
+
+
+    // $ANTLR start "rule__WaitAction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16823:1: rule__WaitAction__Group__4__Impl : ( '}' ) ;
+    public final void rule__WaitAction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16827:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16828:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16828:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16829:1: '}'
+            {
+             before(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__WaitAction__Group__4__Impl33452); 
+             after(grammarAccess.getWaitActionAccess().getRightCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16853:1: rule__VirtualNode__Group__0 : rule__VirtualNode__Group__0__Impl rule__VirtualNode__Group__1 ;
+    public final void rule__VirtualNode__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16857:1: ( rule__VirtualNode__Group__0__Impl rule__VirtualNode__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16858:2: rule__VirtualNode__Group__0__Impl rule__VirtualNode__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__0__Impl_in_rule__VirtualNode__Group__033494);
+            rule__VirtualNode__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__1_in_rule__VirtualNode__Group__033497);
+            rule__VirtualNode__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16865:1: rule__VirtualNode__Group__0__Impl : ( 'VirtualNode' ) ;
+    public final void rule__VirtualNode__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16869:1: ( ( 'VirtualNode' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16870:1: ( 'VirtualNode' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16870:1: ( 'VirtualNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16871:1: 'VirtualNode'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); 
+            match(input,120,FollowSets001.FOLLOW_120_in_rule__VirtualNode__Group__0__Impl33525); 
+             after(grammarAccess.getVirtualNodeAccess().getVirtualNodeKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16884:1: rule__VirtualNode__Group__1 : rule__VirtualNode__Group__1__Impl rule__VirtualNode__Group__2 ;
+    public final void rule__VirtualNode__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16888:1: ( rule__VirtualNode__Group__1__Impl rule__VirtualNode__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16889:2: rule__VirtualNode__Group__1__Impl rule__VirtualNode__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__1__Impl_in_rule__VirtualNode__Group__133556);
+            rule__VirtualNode__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__2_in_rule__VirtualNode__Group__133559);
+            rule__VirtualNode__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16896:1: rule__VirtualNode__Group__1__Impl : ( ( rule__VirtualNode__IdAssignment_1 ) ) ;
+    public final void rule__VirtualNode__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16900:1: ( ( ( rule__VirtualNode__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16901:1: ( ( rule__VirtualNode__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16901:1: ( ( rule__VirtualNode__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16902:1: ( rule__VirtualNode__IdAssignment_1 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16903:1: ( rule__VirtualNode__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16903:2: rule__VirtualNode__IdAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__IdAssignment_1_in_rule__VirtualNode__Group__1__Impl33586);
+            rule__VirtualNode__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16913:1: rule__VirtualNode__Group__2 : rule__VirtualNode__Group__2__Impl rule__VirtualNode__Group__3 ;
+    public final void rule__VirtualNode__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16917:1: ( rule__VirtualNode__Group__2__Impl rule__VirtualNode__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16918:2: rule__VirtualNode__Group__2__Impl rule__VirtualNode__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__2__Impl_in_rule__VirtualNode__Group__233616);
+            rule__VirtualNode__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__3_in_rule__VirtualNode__Group__233619);
+            rule__VirtualNode__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__2"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16925:1: rule__VirtualNode__Group__2__Impl : ( '{' ) ;
+    public final void rule__VirtualNode__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16929:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16930:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16930:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16931:1: '{'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__VirtualNode__Group__2__Impl33647); 
+             after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16944:1: rule__VirtualNode__Group__3 : rule__VirtualNode__Group__3__Impl rule__VirtualNode__Group__4 ;
+    public final void rule__VirtualNode__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16948:1: ( rule__VirtualNode__Group__3__Impl rule__VirtualNode__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16949:2: rule__VirtualNode__Group__3__Impl rule__VirtualNode__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__3__Impl_in_rule__VirtualNode__Group__333678);
+            rule__VirtualNode__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__4_in_rule__VirtualNode__Group__333681);
+            rule__VirtualNode__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__3"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16956:1: rule__VirtualNode__Group__3__Impl : ( 'name' ) ;
+    public final void rule__VirtualNode__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16960:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16961:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16961:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16962:1: 'name'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets001.FOLLOW_65_in_rule__VirtualNode__Group__3__Impl33709); 
+             after(grammarAccess.getVirtualNodeAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16975:1: rule__VirtualNode__Group__4 : rule__VirtualNode__Group__4__Impl rule__VirtualNode__Group__5 ;
+    public final void rule__VirtualNode__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16979:1: ( rule__VirtualNode__Group__4__Impl rule__VirtualNode__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16980:2: rule__VirtualNode__Group__4__Impl rule__VirtualNode__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__4__Impl_in_rule__VirtualNode__Group__433740);
+            rule__VirtualNode__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__5_in_rule__VirtualNode__Group__433743);
+            rule__VirtualNode__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__4"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16987:1: rule__VirtualNode__Group__4__Impl : ( ( rule__VirtualNode__NameAssignment_4 ) ) ;
+    public final void rule__VirtualNode__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16991:1: ( ( ( rule__VirtualNode__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16992:1: ( ( rule__VirtualNode__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16992:1: ( ( rule__VirtualNode__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16993:1: ( rule__VirtualNode__NameAssignment_4 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16994:1: ( rule__VirtualNode__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:16994:2: rule__VirtualNode__NameAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__NameAssignment_4_in_rule__VirtualNode__Group__4__Impl33770);
+            rule__VirtualNode__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17004:1: rule__VirtualNode__Group__5 : rule__VirtualNode__Group__5__Impl rule__VirtualNode__Group__6 ;
+    public final void rule__VirtualNode__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17008:1: ( rule__VirtualNode__Group__5__Impl rule__VirtualNode__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17009:2: rule__VirtualNode__Group__5__Impl rule__VirtualNode__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__5__Impl_in_rule__VirtualNode__Group__533800);
+            rule__VirtualNode__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__6_in_rule__VirtualNode__Group__533803);
+            rule__VirtualNode__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__5"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17016:1: rule__VirtualNode__Group__5__Impl : ( ( rule__VirtualNode__Group_5__0 )? ) ;
+    public final void rule__VirtualNode__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17020:1: ( ( ( rule__VirtualNode__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17021:1: ( ( rule__VirtualNode__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17021:1: ( ( rule__VirtualNode__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17022:1: ( rule__VirtualNode__Group_5__0 )?
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17023:1: ( rule__VirtualNode__Group_5__0 )?
+            int alt80=2;
+            int LA80_0 = input.LA(1);
+
+            if ( (LA80_0==67) ) {
+                alt80=1;
+            }
+            switch (alt80) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17023:2: rule__VirtualNode__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__0_in_rule__VirtualNode__Group__5__Impl33830);
+                    rule__VirtualNode__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17033:1: rule__VirtualNode__Group__6 : rule__VirtualNode__Group__6__Impl rule__VirtualNode__Group__7 ;
+    public final void rule__VirtualNode__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17037:1: ( rule__VirtualNode__Group__6__Impl rule__VirtualNode__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17038:2: rule__VirtualNode__Group__6__Impl rule__VirtualNode__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__6__Impl_in_rule__VirtualNode__Group__633861);
+            rule__VirtualNode__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__7_in_rule__VirtualNode__Group__633864);
+            rule__VirtualNode__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__6"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17045:1: rule__VirtualNode__Group__6__Impl : ( ( rule__VirtualNode__Group_6__0 )? ) ;
+    public final void rule__VirtualNode__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17049:1: ( ( ( rule__VirtualNode__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17050:1: ( ( rule__VirtualNode__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17050:1: ( ( rule__VirtualNode__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17051:1: ( rule__VirtualNode__Group_6__0 )?
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17052:1: ( rule__VirtualNode__Group_6__0 )?
+            int alt81=2;
+            int LA81_0 = input.LA(1);
+
+            if ( (LA81_0==55) ) {
+                alt81=1;
+            }
+            switch (alt81) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17052:2: rule__VirtualNode__Group_6__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__0_in_rule__VirtualNode__Group__6__Impl33891);
+                    rule__VirtualNode__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17062:1: rule__VirtualNode__Group__7 : rule__VirtualNode__Group__7__Impl rule__VirtualNode__Group__8 ;
+    public final void rule__VirtualNode__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17066:1: ( rule__VirtualNode__Group__7__Impl rule__VirtualNode__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17067:2: rule__VirtualNode__Group__7__Impl rule__VirtualNode__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__7__Impl_in_rule__VirtualNode__Group__733922);
+            rule__VirtualNode__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__8_in_rule__VirtualNode__Group__733925);
+            rule__VirtualNode__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__7"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17074:1: rule__VirtualNode__Group__7__Impl : ( 'hostedOn' ) ;
+    public final void rule__VirtualNode__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17078:1: ( ( 'hostedOn' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17079:1: ( 'hostedOn' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17079:1: ( 'hostedOn' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17080:1: 'hostedOn'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); 
+            match(input,121,FollowSets001.FOLLOW_121_in_rule__VirtualNode__Group__7__Impl33953); 
+             after(grammarAccess.getVirtualNodeAccess().getHostedOnKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__7__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17093:1: rule__VirtualNode__Group__8 : rule__VirtualNode__Group__8__Impl rule__VirtualNode__Group__9 ;
+    public final void rule__VirtualNode__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17097:1: ( rule__VirtualNode__Group__8__Impl rule__VirtualNode__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17098:2: rule__VirtualNode__Group__8__Impl rule__VirtualNode__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__8__Impl_in_rule__VirtualNode__Group__833984);
+            rule__VirtualNode__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__9_in_rule__VirtualNode__Group__833987);
+            rule__VirtualNode__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__8"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17105:1: rule__VirtualNode__Group__8__Impl : ( ( rule__VirtualNode__HostedOnAssignment_8 ) ) ;
+    public final void rule__VirtualNode__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17109:1: ( ( ( rule__VirtualNode__HostedOnAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17110:1: ( ( rule__VirtualNode__HostedOnAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17110:1: ( ( rule__VirtualNode__HostedOnAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17111:1: ( rule__VirtualNode__HostedOnAssignment_8 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17112:1: ( rule__VirtualNode__HostedOnAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17112:2: rule__VirtualNode__HostedOnAssignment_8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__HostedOnAssignment_8_in_rule__VirtualNode__Group__8__Impl34014);
+            rule__VirtualNode__HostedOnAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getHostedOnAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__8__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17122:1: rule__VirtualNode__Group__9 : rule__VirtualNode__Group__9__Impl rule__VirtualNode__Group__10 ;
+    public final void rule__VirtualNode__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17126:1: ( rule__VirtualNode__Group__9__Impl rule__VirtualNode__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17127:2: rule__VirtualNode__Group__9__Impl rule__VirtualNode__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__9__Impl_in_rule__VirtualNode__Group__934044);
+            rule__VirtualNode__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__10_in_rule__VirtualNode__Group__934047);
+            rule__VirtualNode__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__9"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17134:1: rule__VirtualNode__Group__9__Impl : ( 'performance' ) ;
+    public final void rule__VirtualNode__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17138:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17139:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17139:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17140:1: 'performance'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); 
+            match(input,122,FollowSets001.FOLLOW_122_in_rule__VirtualNode__Group__9__Impl34075); 
+             after(grammarAccess.getVirtualNodeAccess().getPerformanceKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__9__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17153:1: rule__VirtualNode__Group__10 : rule__VirtualNode__Group__10__Impl rule__VirtualNode__Group__11 ;
+    public final void rule__VirtualNode__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17157:1: ( rule__VirtualNode__Group__10__Impl rule__VirtualNode__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17158:2: rule__VirtualNode__Group__10__Impl rule__VirtualNode__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__10__Impl_in_rule__VirtualNode__Group__1034106);
+            rule__VirtualNode__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__11_in_rule__VirtualNode__Group__1034109);
+            rule__VirtualNode__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__10"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17165:1: rule__VirtualNode__Group__10__Impl : ( ( rule__VirtualNode__PerformanceAssignment_10 ) ) ;
+    public final void rule__VirtualNode__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17169:1: ( ( ( rule__VirtualNode__PerformanceAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17170:1: ( ( rule__VirtualNode__PerformanceAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17170:1: ( ( rule__VirtualNode__PerformanceAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17171:1: ( rule__VirtualNode__PerformanceAssignment_10 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17172:1: ( rule__VirtualNode__PerformanceAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17172:2: rule__VirtualNode__PerformanceAssignment_10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__PerformanceAssignment_10_in_rule__VirtualNode__Group__10__Impl34136);
+            rule__VirtualNode__PerformanceAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getPerformanceAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__10__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17182:1: rule__VirtualNode__Group__11 : rule__VirtualNode__Group__11__Impl rule__VirtualNode__Group__12 ;
+    public final void rule__VirtualNode__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17186:1: ( rule__VirtualNode__Group__11__Impl rule__VirtualNode__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17187:2: rule__VirtualNode__Group__11__Impl rule__VirtualNode__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__11__Impl_in_rule__VirtualNode__Group__1134166);
+            rule__VirtualNode__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__12_in_rule__VirtualNode__Group__1134169);
+            rule__VirtualNode__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__11"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17194:1: rule__VirtualNode__Group__11__Impl : ( ( rule__VirtualNode__Group_11__0 )? ) ;
+    public final void rule__VirtualNode__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17198:1: ( ( ( rule__VirtualNode__Group_11__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17199:1: ( ( rule__VirtualNode__Group_11__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17199:1: ( ( rule__VirtualNode__Group_11__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17200:1: ( rule__VirtualNode__Group_11__0 )?
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17201:1: ( rule__VirtualNode__Group_11__0 )?
+            int alt82=2;
+            int LA82_0 = input.LA(1);
+
+            if ( (LA82_0==125) ) {
+                alt82=1;
+            }
+            switch (alt82) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17201:2: rule__VirtualNode__Group_11__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__0_in_rule__VirtualNode__Group__11__Impl34196);
+                    rule__VirtualNode__Group_11__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__11__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17211:1: rule__VirtualNode__Group__12 : rule__VirtualNode__Group__12__Impl ;
+    public final void rule__VirtualNode__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17215:1: ( rule__VirtualNode__Group__12__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17216:2: rule__VirtualNode__Group__12__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group__12__Impl_in_rule__VirtualNode__Group__1234227);
+            rule__VirtualNode__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__12"
+
+
+    // $ANTLR start "rule__VirtualNode__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17222:1: rule__VirtualNode__Group__12__Impl : ( '}' ) ;
+    public final void rule__VirtualNode__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17226:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17227:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17227:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17228:1: '}'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__VirtualNode__Group__12__Impl34255); 
+             after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group__12__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17267:1: rule__VirtualNode__Group_5__0 : rule__VirtualNode__Group_5__0__Impl rule__VirtualNode__Group_5__1 ;
+    public final void rule__VirtualNode__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17271:1: ( rule__VirtualNode__Group_5__0__Impl rule__VirtualNode__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17272:2: rule__VirtualNode__Group_5__0__Impl rule__VirtualNode__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__0__Impl_in_rule__VirtualNode__Group_5__034312);
+            rule__VirtualNode__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__1_in_rule__VirtualNode__Group_5__034315);
+            rule__VirtualNode__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17279:1: rule__VirtualNode__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__VirtualNode__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17283:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17284:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17284:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17285:1: 'alternativeNames'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__VirtualNode__Group_5__0__Impl34343); 
+             after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17298:1: rule__VirtualNode__Group_5__1 : rule__VirtualNode__Group_5__1__Impl rule__VirtualNode__Group_5__2 ;
+    public final void rule__VirtualNode__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17302:1: ( rule__VirtualNode__Group_5__1__Impl rule__VirtualNode__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17303:2: rule__VirtualNode__Group_5__1__Impl rule__VirtualNode__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__1__Impl_in_rule__VirtualNode__Group_5__134374);
+            rule__VirtualNode__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__2_in_rule__VirtualNode__Group_5__134377);
+            rule__VirtualNode__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17310:1: rule__VirtualNode__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__VirtualNode__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17314:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17315:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17315:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17316:1: '{'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__VirtualNode__Group_5__1__Impl34405); 
+             after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17329:1: rule__VirtualNode__Group_5__2 : rule__VirtualNode__Group_5__2__Impl rule__VirtualNode__Group_5__3 ;
+    public final void rule__VirtualNode__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17333:1: ( rule__VirtualNode__Group_5__2__Impl rule__VirtualNode__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17334:2: rule__VirtualNode__Group_5__2__Impl rule__VirtualNode__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__2__Impl_in_rule__VirtualNode__Group_5__234436);
+            rule__VirtualNode__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__3_in_rule__VirtualNode__Group_5__234439);
+            rule__VirtualNode__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__2"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17341:1: rule__VirtualNode__Group_5__2__Impl : ( ( rule__VirtualNode__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__VirtualNode__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17345:1: ( ( ( rule__VirtualNode__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17346:1: ( ( rule__VirtualNode__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17346:1: ( ( rule__VirtualNode__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17347:1: ( rule__VirtualNode__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17348:1: ( rule__VirtualNode__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17348:2: rule__VirtualNode__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__AlternativeNamesAssignment_5_2_in_rule__VirtualNode__Group_5__2__Impl34466);
+            rule__VirtualNode__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17358:1: rule__VirtualNode__Group_5__3 : rule__VirtualNode__Group_5__3__Impl rule__VirtualNode__Group_5__4 ;
+    public final void rule__VirtualNode__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17362:1: ( rule__VirtualNode__Group_5__3__Impl rule__VirtualNode__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17363:2: rule__VirtualNode__Group_5__3__Impl rule__VirtualNode__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__3__Impl_in_rule__VirtualNode__Group_5__334496);
+            rule__VirtualNode__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__4_in_rule__VirtualNode__Group_5__334499);
+            rule__VirtualNode__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__3"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17370:1: rule__VirtualNode__Group_5__3__Impl : ( ( rule__VirtualNode__Group_5_3__0 )* ) ;
+    public final void rule__VirtualNode__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17374:1: ( ( ( rule__VirtualNode__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17375:1: ( ( rule__VirtualNode__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17375:1: ( ( rule__VirtualNode__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17376:1: ( rule__VirtualNode__Group_5_3__0 )*
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17377:1: ( rule__VirtualNode__Group_5_3__0 )*
+            loop83:
+            do {
+                int alt83=2;
+                int LA83_0 = input.LA(1);
+
+                if ( (LA83_0==31) ) {
+                    alt83=1;
+                }
+
+
+                switch (alt83) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17377:2: rule__VirtualNode__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5_3__0_in_rule__VirtualNode__Group_5__3__Impl34526);
+            	    rule__VirtualNode__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop83;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17387:1: rule__VirtualNode__Group_5__4 : rule__VirtualNode__Group_5__4__Impl ;
+    public final void rule__VirtualNode__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17391:1: ( rule__VirtualNode__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17392:2: rule__VirtualNode__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5__4__Impl_in_rule__VirtualNode__Group_5__434557);
+            rule__VirtualNode__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__4"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17398:1: rule__VirtualNode__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__VirtualNode__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17402:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17403:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17403:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17404:1: '}'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__VirtualNode__Group_5__4__Impl34585); 
+             after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17427:1: rule__VirtualNode__Group_5_3__0 : rule__VirtualNode__Group_5_3__0__Impl rule__VirtualNode__Group_5_3__1 ;
+    public final void rule__VirtualNode__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17431:1: ( rule__VirtualNode__Group_5_3__0__Impl rule__VirtualNode__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17432:2: rule__VirtualNode__Group_5_3__0__Impl rule__VirtualNode__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5_3__0__Impl_in_rule__VirtualNode__Group_5_3__034626);
+            rule__VirtualNode__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5_3__1_in_rule__VirtualNode__Group_5_3__034629);
+            rule__VirtualNode__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5_3__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17439:1: rule__VirtualNode__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualNode__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17443:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17444:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17444:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17445:1: ','
+            {
+             before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__VirtualNode__Group_5_3__0__Impl34657); 
+             after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17458:1: rule__VirtualNode__Group_5_3__1 : rule__VirtualNode__Group_5_3__1__Impl ;
+    public final void rule__VirtualNode__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17462:1: ( rule__VirtualNode__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17463:2: rule__VirtualNode__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_5_3__1__Impl_in_rule__VirtualNode__Group_5_3__134688);
+            rule__VirtualNode__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5_3__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17469:1: rule__VirtualNode__Group_5_3__1__Impl : ( ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__VirtualNode__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17473:1: ( ( ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17474:1: ( ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17474:1: ( ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17475:1: ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17476:1: ( rule__VirtualNode__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17476:2: rule__VirtualNode__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__AlternativeNamesAssignment_5_3_1_in_rule__VirtualNode__Group_5_3__1__Impl34715);
+            rule__VirtualNode__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17490:1: rule__VirtualNode__Group_6__0 : rule__VirtualNode__Group_6__0__Impl rule__VirtualNode__Group_6__1 ;
+    public final void rule__VirtualNode__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17494:1: ( rule__VirtualNode__Group_6__0__Impl rule__VirtualNode__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17495:2: rule__VirtualNode__Group_6__0__Impl rule__VirtualNode__Group_6__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__0__Impl_in_rule__VirtualNode__Group_6__034749);
+            rule__VirtualNode__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__1_in_rule__VirtualNode__Group_6__034752);
+            rule__VirtualNode__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17502:1: rule__VirtualNode__Group_6__0__Impl : ( 'software' ) ;
+    public final void rule__VirtualNode__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17506:1: ( ( 'software' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17507:1: ( 'software' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17507:1: ( 'software' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17508:1: 'software'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); 
+            match(input,55,FollowSets001.FOLLOW_55_in_rule__VirtualNode__Group_6__0__Impl34780); 
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17521:1: rule__VirtualNode__Group_6__1 : rule__VirtualNode__Group_6__1__Impl rule__VirtualNode__Group_6__2 ;
+    public final void rule__VirtualNode__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17525:1: ( rule__VirtualNode__Group_6__1__Impl rule__VirtualNode__Group_6__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17526:2: rule__VirtualNode__Group_6__1__Impl rule__VirtualNode__Group_6__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__1__Impl_in_rule__VirtualNode__Group_6__134811);
+            rule__VirtualNode__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__2_in_rule__VirtualNode__Group_6__134814);
+            rule__VirtualNode__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17533:1: rule__VirtualNode__Group_6__1__Impl : ( '(' ) ;
+    public final void rule__VirtualNode__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17537:1: ( ( '(' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17538:1: ( '(' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17538:1: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17539:1: '('
+            {
+             before(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); 
+            match(input,123,FollowSets001.FOLLOW_123_in_rule__VirtualNode__Group_6__1__Impl34842); 
+             after(grammarAccess.getVirtualNodeAccess().getLeftParenthesisKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17552:1: rule__VirtualNode__Group_6__2 : rule__VirtualNode__Group_6__2__Impl rule__VirtualNode__Group_6__3 ;
+    public final void rule__VirtualNode__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17556:1: ( rule__VirtualNode__Group_6__2__Impl rule__VirtualNode__Group_6__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17557:2: rule__VirtualNode__Group_6__2__Impl rule__VirtualNode__Group_6__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__2__Impl_in_rule__VirtualNode__Group_6__234873);
+            rule__VirtualNode__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__3_in_rule__VirtualNode__Group_6__234876);
+            rule__VirtualNode__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__2"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17564:1: rule__VirtualNode__Group_6__2__Impl : ( ( rule__VirtualNode__SoftwareAssignment_6_2 ) ) ;
+    public final void rule__VirtualNode__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17568:1: ( ( ( rule__VirtualNode__SoftwareAssignment_6_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17569:1: ( ( rule__VirtualNode__SoftwareAssignment_6_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17569:1: ( ( rule__VirtualNode__SoftwareAssignment_6_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17570:1: ( rule__VirtualNode__SoftwareAssignment_6_2 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17571:1: ( rule__VirtualNode__SoftwareAssignment_6_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17571:2: rule__VirtualNode__SoftwareAssignment_6_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__SoftwareAssignment_6_2_in_rule__VirtualNode__Group_6__2__Impl34903);
+            rule__VirtualNode__SoftwareAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17581:1: rule__VirtualNode__Group_6__3 : rule__VirtualNode__Group_6__3__Impl rule__VirtualNode__Group_6__4 ;
+    public final void rule__VirtualNode__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17585:1: ( rule__VirtualNode__Group_6__3__Impl rule__VirtualNode__Group_6__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17586:2: rule__VirtualNode__Group_6__3__Impl rule__VirtualNode__Group_6__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__3__Impl_in_rule__VirtualNode__Group_6__334933);
+            rule__VirtualNode__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__4_in_rule__VirtualNode__Group_6__334936);
+            rule__VirtualNode__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__3"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17593:1: rule__VirtualNode__Group_6__3__Impl : ( ( rule__VirtualNode__Group_6_3__0 )* ) ;
+    public final void rule__VirtualNode__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17597:1: ( ( ( rule__VirtualNode__Group_6_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17598:1: ( ( rule__VirtualNode__Group_6_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17598:1: ( ( rule__VirtualNode__Group_6_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17599:1: ( rule__VirtualNode__Group_6_3__0 )*
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17600:1: ( rule__VirtualNode__Group_6_3__0 )*
+            loop84:
+            do {
+                int alt84=2;
+                int LA84_0 = input.LA(1);
+
+                if ( (LA84_0==31) ) {
+                    alt84=1;
+                }
+
+
+                switch (alt84) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17600:2: rule__VirtualNode__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6_3__0_in_rule__VirtualNode__Group_6__3__Impl34963);
+            	    rule__VirtualNode__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop84;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17610:1: rule__VirtualNode__Group_6__4 : rule__VirtualNode__Group_6__4__Impl ;
+    public final void rule__VirtualNode__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17614:1: ( rule__VirtualNode__Group_6__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17615:2: rule__VirtualNode__Group_6__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6__4__Impl_in_rule__VirtualNode__Group_6__434994);
+            rule__VirtualNode__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__4"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17621:1: rule__VirtualNode__Group_6__4__Impl : ( ')' ) ;
+    public final void rule__VirtualNode__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17625:1: ( ( ')' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17626:1: ( ')' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17626:1: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17627:1: ')'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); 
+            match(input,124,FollowSets001.FOLLOW_124_in_rule__VirtualNode__Group_6__4__Impl35022); 
+             after(grammarAccess.getVirtualNodeAccess().getRightParenthesisKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17650:1: rule__VirtualNode__Group_6_3__0 : rule__VirtualNode__Group_6_3__0__Impl rule__VirtualNode__Group_6_3__1 ;
+    public final void rule__VirtualNode__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17654:1: ( rule__VirtualNode__Group_6_3__0__Impl rule__VirtualNode__Group_6_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17655:2: rule__VirtualNode__Group_6_3__0__Impl rule__VirtualNode__Group_6_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6_3__0__Impl_in_rule__VirtualNode__Group_6_3__035063);
+            rule__VirtualNode__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6_3__1_in_rule__VirtualNode__Group_6_3__035066);
+            rule__VirtualNode__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6_3__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17662:1: rule__VirtualNode__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualNode__Group_6_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17666:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17667:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17667:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17668:1: ','
+            {
+             before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__VirtualNode__Group_6_3__0__Impl35094); 
+             after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17681:1: rule__VirtualNode__Group_6_3__1 : rule__VirtualNode__Group_6_3__1__Impl ;
+    public final void rule__VirtualNode__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17685:1: ( rule__VirtualNode__Group_6_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17686:2: rule__VirtualNode__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_6_3__1__Impl_in_rule__VirtualNode__Group_6_3__135125);
+            rule__VirtualNode__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6_3__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_6_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17692:1: rule__VirtualNode__Group_6_3__1__Impl : ( ( rule__VirtualNode__SoftwareAssignment_6_3_1 ) ) ;
+    public final void rule__VirtualNode__Group_6_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17696:1: ( ( ( rule__VirtualNode__SoftwareAssignment_6_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17697:1: ( ( rule__VirtualNode__SoftwareAssignment_6_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17697:1: ( ( rule__VirtualNode__SoftwareAssignment_6_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17698:1: ( rule__VirtualNode__SoftwareAssignment_6_3_1 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17699:1: ( rule__VirtualNode__SoftwareAssignment_6_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17699:2: rule__VirtualNode__SoftwareAssignment_6_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__SoftwareAssignment_6_3_1_in_rule__VirtualNode__Group_6_3__1__Impl35152);
+            rule__VirtualNode__SoftwareAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17713:1: rule__VirtualNode__Group_11__0 : rule__VirtualNode__Group_11__0__Impl rule__VirtualNode__Group_11__1 ;
+    public final void rule__VirtualNode__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17717:1: ( rule__VirtualNode__Group_11__0__Impl rule__VirtualNode__Group_11__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17718:2: rule__VirtualNode__Group_11__0__Impl rule__VirtualNode__Group_11__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__0__Impl_in_rule__VirtualNode__Group_11__035186);
+            rule__VirtualNode__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__1_in_rule__VirtualNode__Group_11__035189);
+            rule__VirtualNode__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17725:1: rule__VirtualNode__Group_11__0__Impl : ( 'interfaces' ) ;
+    public final void rule__VirtualNode__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17729:1: ( ( 'interfaces' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17730:1: ( 'interfaces' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17730:1: ( 'interfaces' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17731:1: 'interfaces'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); 
+            match(input,125,FollowSets001.FOLLOW_125_in_rule__VirtualNode__Group_11__0__Impl35217); 
+             after(grammarAccess.getVirtualNodeAccess().getInterfacesKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17744:1: rule__VirtualNode__Group_11__1 : rule__VirtualNode__Group_11__1__Impl rule__VirtualNode__Group_11__2 ;
+    public final void rule__VirtualNode__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17748:1: ( rule__VirtualNode__Group_11__1__Impl rule__VirtualNode__Group_11__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17749:2: rule__VirtualNode__Group_11__1__Impl rule__VirtualNode__Group_11__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__1__Impl_in_rule__VirtualNode__Group_11__135248);
+            rule__VirtualNode__Group_11__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__2_in_rule__VirtualNode__Group_11__135251);
+            rule__VirtualNode__Group_11__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17756:1: rule__VirtualNode__Group_11__1__Impl : ( '{' ) ;
+    public final void rule__VirtualNode__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17760:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17761:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17761:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17762:1: '{'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__VirtualNode__Group_11__1__Impl35279); 
+             after(grammarAccess.getVirtualNodeAccess().getLeftCurlyBracketKeyword_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17775:1: rule__VirtualNode__Group_11__2 : rule__VirtualNode__Group_11__2__Impl rule__VirtualNode__Group_11__3 ;
+    public final void rule__VirtualNode__Group_11__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17779:1: ( rule__VirtualNode__Group_11__2__Impl rule__VirtualNode__Group_11__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17780:2: rule__VirtualNode__Group_11__2__Impl rule__VirtualNode__Group_11__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__2__Impl_in_rule__VirtualNode__Group_11__235310);
+            rule__VirtualNode__Group_11__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__3_in_rule__VirtualNode__Group_11__235313);
+            rule__VirtualNode__Group_11__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__2"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17787:1: rule__VirtualNode__Group_11__2__Impl : ( ( rule__VirtualNode__InterfacesAssignment_11_2 ) ) ;
+    public final void rule__VirtualNode__Group_11__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17791:1: ( ( ( rule__VirtualNode__InterfacesAssignment_11_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17792:1: ( ( rule__VirtualNode__InterfacesAssignment_11_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17792:1: ( ( rule__VirtualNode__InterfacesAssignment_11_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17793:1: ( rule__VirtualNode__InterfacesAssignment_11_2 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17794:1: ( rule__VirtualNode__InterfacesAssignment_11_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17794:2: rule__VirtualNode__InterfacesAssignment_11_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__InterfacesAssignment_11_2_in_rule__VirtualNode__Group_11__2__Impl35340);
+            rule__VirtualNode__InterfacesAssignment_11_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17804:1: rule__VirtualNode__Group_11__3 : rule__VirtualNode__Group_11__3__Impl rule__VirtualNode__Group_11__4 ;
+    public final void rule__VirtualNode__Group_11__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17808:1: ( rule__VirtualNode__Group_11__3__Impl rule__VirtualNode__Group_11__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17809:2: rule__VirtualNode__Group_11__3__Impl rule__VirtualNode__Group_11__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__3__Impl_in_rule__VirtualNode__Group_11__335370);
+            rule__VirtualNode__Group_11__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__4_in_rule__VirtualNode__Group_11__335373);
+            rule__VirtualNode__Group_11__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__3"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17816:1: rule__VirtualNode__Group_11__3__Impl : ( ( rule__VirtualNode__Group_11_3__0 )* ) ;
+    public final void rule__VirtualNode__Group_11__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17820:1: ( ( ( rule__VirtualNode__Group_11_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17821:1: ( ( rule__VirtualNode__Group_11_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17821:1: ( ( rule__VirtualNode__Group_11_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17822:1: ( rule__VirtualNode__Group_11_3__0 )*
+            {
+             before(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17823:1: ( rule__VirtualNode__Group_11_3__0 )*
+            loop85:
+            do {
+                int alt85=2;
+                int LA85_0 = input.LA(1);
+
+                if ( (LA85_0==31) ) {
+                    alt85=1;
+                }
+
+
+                switch (alt85) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17823:2: rule__VirtualNode__Group_11_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11_3__0_in_rule__VirtualNode__Group_11__3__Impl35400);
+            	    rule__VirtualNode__Group_11_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop85;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualNodeAccess().getGroup_11_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17833:1: rule__VirtualNode__Group_11__4 : rule__VirtualNode__Group_11__4__Impl ;
+    public final void rule__VirtualNode__Group_11__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17837:1: ( rule__VirtualNode__Group_11__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17838:2: rule__VirtualNode__Group_11__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11__4__Impl_in_rule__VirtualNode__Group_11__435431);
+            rule__VirtualNode__Group_11__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__4"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17844:1: rule__VirtualNode__Group_11__4__Impl : ( '}' ) ;
+    public final void rule__VirtualNode__Group_11__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17848:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17849:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17849:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17850:1: '}'
+            {
+             before(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__VirtualNode__Group_11__4__Impl35459); 
+             after(grammarAccess.getVirtualNodeAccess().getRightCurlyBracketKeyword_11_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17873:1: rule__VirtualNode__Group_11_3__0 : rule__VirtualNode__Group_11_3__0__Impl rule__VirtualNode__Group_11_3__1 ;
+    public final void rule__VirtualNode__Group_11_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17877:1: ( rule__VirtualNode__Group_11_3__0__Impl rule__VirtualNode__Group_11_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17878:2: rule__VirtualNode__Group_11_3__0__Impl rule__VirtualNode__Group_11_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11_3__0__Impl_in_rule__VirtualNode__Group_11_3__035500);
+            rule__VirtualNode__Group_11_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11_3__1_in_rule__VirtualNode__Group_11_3__035503);
+            rule__VirtualNode__Group_11_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11_3__0"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17885:1: rule__VirtualNode__Group_11_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualNode__Group_11_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17889:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17890:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17890:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17891:1: ','
+            {
+             before(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__VirtualNode__Group_11_3__0__Impl35531); 
+             after(grammarAccess.getVirtualNodeAccess().getCommaKeyword_11_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17904:1: rule__VirtualNode__Group_11_3__1 : rule__VirtualNode__Group_11_3__1__Impl ;
+    public final void rule__VirtualNode__Group_11_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17908:1: ( rule__VirtualNode__Group_11_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17909:2: rule__VirtualNode__Group_11_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__Group_11_3__1__Impl_in_rule__VirtualNode__Group_11_3__135562);
+            rule__VirtualNode__Group_11_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11_3__1"
+
+
+    // $ANTLR start "rule__VirtualNode__Group_11_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17915:1: rule__VirtualNode__Group_11_3__1__Impl : ( ( rule__VirtualNode__InterfacesAssignment_11_3_1 ) ) ;
+    public final void rule__VirtualNode__Group_11_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17919:1: ( ( ( rule__VirtualNode__InterfacesAssignment_11_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17920:1: ( ( rule__VirtualNode__InterfacesAssignment_11_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17920:1: ( ( rule__VirtualNode__InterfacesAssignment_11_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17921:1: ( rule__VirtualNode__InterfacesAssignment_11_3_1 )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17922:1: ( rule__VirtualNode__InterfacesAssignment_11_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17922:2: rule__VirtualNode__InterfacesAssignment_11_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualNode__InterfacesAssignment_11_3_1_in_rule__VirtualNode__Group_11_3__1__Impl35589);
+            rule__VirtualNode__InterfacesAssignment_11_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getInterfacesAssignment_11_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__Group_11_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17936:1: rule__PhysicalNode__Group__0 : rule__PhysicalNode__Group__0__Impl rule__PhysicalNode__Group__1 ;
+    public final void rule__PhysicalNode__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17940:1: ( rule__PhysicalNode__Group__0__Impl rule__PhysicalNode__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17941:2: rule__PhysicalNode__Group__0__Impl rule__PhysicalNode__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__0__Impl_in_rule__PhysicalNode__Group__035623);
+            rule__PhysicalNode__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__1_in_rule__PhysicalNode__Group__035626);
+            rule__PhysicalNode__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17948:1: rule__PhysicalNode__Group__0__Impl : ( 'PhysicalNode' ) ;
+    public final void rule__PhysicalNode__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17952:1: ( ( 'PhysicalNode' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17953:1: ( 'PhysicalNode' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17953:1: ( 'PhysicalNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17954:1: 'PhysicalNode'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); 
+            match(input,126,FollowSets001.FOLLOW_126_in_rule__PhysicalNode__Group__0__Impl35654); 
+             after(grammarAccess.getPhysicalNodeAccess().getPhysicalNodeKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17967:1: rule__PhysicalNode__Group__1 : rule__PhysicalNode__Group__1__Impl rule__PhysicalNode__Group__2 ;
+    public final void rule__PhysicalNode__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17971:1: ( rule__PhysicalNode__Group__1__Impl rule__PhysicalNode__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17972:2: rule__PhysicalNode__Group__1__Impl rule__PhysicalNode__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__1__Impl_in_rule__PhysicalNode__Group__135685);
+            rule__PhysicalNode__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__2_in_rule__PhysicalNode__Group__135688);
+            rule__PhysicalNode__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17979:1: rule__PhysicalNode__Group__1__Impl : ( ( rule__PhysicalNode__IdAssignment_1 ) ) ;
+    public final void rule__PhysicalNode__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17983:1: ( ( ( rule__PhysicalNode__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17984:1: ( ( rule__PhysicalNode__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17984:1: ( ( rule__PhysicalNode__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17985:1: ( rule__PhysicalNode__IdAssignment_1 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17986:1: ( rule__PhysicalNode__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17986:2: rule__PhysicalNode__IdAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__IdAssignment_1_in_rule__PhysicalNode__Group__1__Impl35715);
+            rule__PhysicalNode__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:17996:1: rule__PhysicalNode__Group__2 : rule__PhysicalNode__Group__2__Impl rule__PhysicalNode__Group__3 ;
+    public final void rule__PhysicalNode__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18000:1: ( rule__PhysicalNode__Group__2__Impl rule__PhysicalNode__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18001:2: rule__PhysicalNode__Group__2__Impl rule__PhysicalNode__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__2__Impl_in_rule__PhysicalNode__Group__235745);
+            rule__PhysicalNode__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__3_in_rule__PhysicalNode__Group__235748);
+            rule__PhysicalNode__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__2"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18008:1: rule__PhysicalNode__Group__2__Impl : ( '{' ) ;
+    public final void rule__PhysicalNode__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18012:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18013:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18013:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18014:1: '{'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__PhysicalNode__Group__2__Impl35776); 
+             after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18027:1: rule__PhysicalNode__Group__3 : rule__PhysicalNode__Group__3__Impl rule__PhysicalNode__Group__4 ;
+    public final void rule__PhysicalNode__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18031:1: ( rule__PhysicalNode__Group__3__Impl rule__PhysicalNode__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18032:2: rule__PhysicalNode__Group__3__Impl rule__PhysicalNode__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__3__Impl_in_rule__PhysicalNode__Group__335807);
+            rule__PhysicalNode__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__4_in_rule__PhysicalNode__Group__335810);
+            rule__PhysicalNode__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__3"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18039:1: rule__PhysicalNode__Group__3__Impl : ( 'name' ) ;
+    public final void rule__PhysicalNode__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18043:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18044:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18044:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18045:1: 'name'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets001.FOLLOW_65_in_rule__PhysicalNode__Group__3__Impl35838); 
+             after(grammarAccess.getPhysicalNodeAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18058:1: rule__PhysicalNode__Group__4 : rule__PhysicalNode__Group__4__Impl rule__PhysicalNode__Group__5 ;
+    public final void rule__PhysicalNode__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18062:1: ( rule__PhysicalNode__Group__4__Impl rule__PhysicalNode__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18063:2: rule__PhysicalNode__Group__4__Impl rule__PhysicalNode__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__4__Impl_in_rule__PhysicalNode__Group__435869);
+            rule__PhysicalNode__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__5_in_rule__PhysicalNode__Group__435872);
+            rule__PhysicalNode__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__4"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18070:1: rule__PhysicalNode__Group__4__Impl : ( ( rule__PhysicalNode__NameAssignment_4 ) ) ;
+    public final void rule__PhysicalNode__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18074:1: ( ( ( rule__PhysicalNode__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18075:1: ( ( rule__PhysicalNode__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18075:1: ( ( rule__PhysicalNode__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18076:1: ( rule__PhysicalNode__NameAssignment_4 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18077:1: ( rule__PhysicalNode__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18077:2: rule__PhysicalNode__NameAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__NameAssignment_4_in_rule__PhysicalNode__Group__4__Impl35899);
+            rule__PhysicalNode__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18087:1: rule__PhysicalNode__Group__5 : rule__PhysicalNode__Group__5__Impl rule__PhysicalNode__Group__6 ;
+    public final void rule__PhysicalNode__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18091:1: ( rule__PhysicalNode__Group__5__Impl rule__PhysicalNode__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18092:2: rule__PhysicalNode__Group__5__Impl rule__PhysicalNode__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__5__Impl_in_rule__PhysicalNode__Group__535929);
+            rule__PhysicalNode__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__6_in_rule__PhysicalNode__Group__535932);
+            rule__PhysicalNode__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__5"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18099:1: rule__PhysicalNode__Group__5__Impl : ( ( rule__PhysicalNode__Group_5__0 )? ) ;
+    public final void rule__PhysicalNode__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18103:1: ( ( ( rule__PhysicalNode__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18104:1: ( ( rule__PhysicalNode__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18104:1: ( ( rule__PhysicalNode__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18105:1: ( rule__PhysicalNode__Group_5__0 )?
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18106:1: ( rule__PhysicalNode__Group_5__0 )?
+            int alt86=2;
+            int LA86_0 = input.LA(1);
+
+            if ( (LA86_0==67) ) {
+                alt86=1;
+            }
+            switch (alt86) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18106:2: rule__PhysicalNode__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__0_in_rule__PhysicalNode__Group__5__Impl35959);
+                    rule__PhysicalNode__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18116:1: rule__PhysicalNode__Group__6 : rule__PhysicalNode__Group__6__Impl rule__PhysicalNode__Group__7 ;
+    public final void rule__PhysicalNode__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18120:1: ( rule__PhysicalNode__Group__6__Impl rule__PhysicalNode__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18121:2: rule__PhysicalNode__Group__6__Impl rule__PhysicalNode__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__6__Impl_in_rule__PhysicalNode__Group__635990);
+            rule__PhysicalNode__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__7_in_rule__PhysicalNode__Group__635993);
+            rule__PhysicalNode__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__6"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18128:1: rule__PhysicalNode__Group__6__Impl : ( ( rule__PhysicalNode__Group_6__0 )? ) ;
+    public final void rule__PhysicalNode__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18132:1: ( ( ( rule__PhysicalNode__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18133:1: ( ( rule__PhysicalNode__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18133:1: ( ( rule__PhysicalNode__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18134:1: ( rule__PhysicalNode__Group_6__0 )?
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18135:1: ( rule__PhysicalNode__Group_6__0 )?
+            int alt87=2;
+            int LA87_0 = input.LA(1);
+
+            if ( (LA87_0==55) ) {
+                alt87=1;
+            }
+            switch (alt87) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18135:2: rule__PhysicalNode__Group_6__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__0_in_rule__PhysicalNode__Group__6__Impl36020);
+                    rule__PhysicalNode__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18145:1: rule__PhysicalNode__Group__7 : rule__PhysicalNode__Group__7__Impl rule__PhysicalNode__Group__8 ;
+    public final void rule__PhysicalNode__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18149:1: ( rule__PhysicalNode__Group__7__Impl rule__PhysicalNode__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18150:2: rule__PhysicalNode__Group__7__Impl rule__PhysicalNode__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__7__Impl_in_rule__PhysicalNode__Group__736051);
+            rule__PhysicalNode__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__8_in_rule__PhysicalNode__Group__736054);
+            rule__PhysicalNode__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__7"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18157:1: rule__PhysicalNode__Group__7__Impl : ( ( rule__PhysicalNode__Group_7__0 )? ) ;
+    public final void rule__PhysicalNode__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18161:1: ( ( ( rule__PhysicalNode__Group_7__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18162:1: ( ( rule__PhysicalNode__Group_7__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18162:1: ( ( rule__PhysicalNode__Group_7__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18163:1: ( rule__PhysicalNode__Group_7__0 )?
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18164:1: ( rule__PhysicalNode__Group_7__0 )?
+            int alt88=2;
+            int LA88_0 = input.LA(1);
+
+            if ( (LA88_0==127) ) {
+                alt88=1;
+            }
+            switch (alt88) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18164:2: rule__PhysicalNode__Group_7__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__0_in_rule__PhysicalNode__Group__7__Impl36081);
+                    rule__PhysicalNode__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18174:1: rule__PhysicalNode__Group__8 : rule__PhysicalNode__Group__8__Impl rule__PhysicalNode__Group__9 ;
+    public final void rule__PhysicalNode__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18178:1: ( rule__PhysicalNode__Group__8__Impl rule__PhysicalNode__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18179:2: rule__PhysicalNode__Group__8__Impl rule__PhysicalNode__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__8__Impl_in_rule__PhysicalNode__Group__836112);
+            rule__PhysicalNode__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__9_in_rule__PhysicalNode__Group__836115);
+            rule__PhysicalNode__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__8"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18186:1: rule__PhysicalNode__Group__8__Impl : ( 'performance' ) ;
+    public final void rule__PhysicalNode__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18190:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18191:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18191:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18192:1: 'performance'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); 
+            match(input,122,FollowSets001.FOLLOW_122_in_rule__PhysicalNode__Group__8__Impl36143); 
+             after(grammarAccess.getPhysicalNodeAccess().getPerformanceKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18205:1: rule__PhysicalNode__Group__9 : rule__PhysicalNode__Group__9__Impl rule__PhysicalNode__Group__10 ;
+    public final void rule__PhysicalNode__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18209:1: ( rule__PhysicalNode__Group__9__Impl rule__PhysicalNode__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18210:2: rule__PhysicalNode__Group__9__Impl rule__PhysicalNode__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__9__Impl_in_rule__PhysicalNode__Group__936174);
+            rule__PhysicalNode__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__10_in_rule__PhysicalNode__Group__936177);
+            rule__PhysicalNode__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__9"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18217:1: rule__PhysicalNode__Group__9__Impl : ( ( rule__PhysicalNode__PerformanceAssignment_9 ) ) ;
+    public final void rule__PhysicalNode__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18221:1: ( ( ( rule__PhysicalNode__PerformanceAssignment_9 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18222:1: ( ( rule__PhysicalNode__PerformanceAssignment_9 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18222:1: ( ( rule__PhysicalNode__PerformanceAssignment_9 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18223:1: ( rule__PhysicalNode__PerformanceAssignment_9 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18224:1: ( rule__PhysicalNode__PerformanceAssignment_9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18224:2: rule__PhysicalNode__PerformanceAssignment_9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__PerformanceAssignment_9_in_rule__PhysicalNode__Group__9__Impl36204);
+            rule__PhysicalNode__PerformanceAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getPerformanceAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18234:1: rule__PhysicalNode__Group__10 : rule__PhysicalNode__Group__10__Impl rule__PhysicalNode__Group__11 ;
+    public final void rule__PhysicalNode__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18238:1: ( rule__PhysicalNode__Group__10__Impl rule__PhysicalNode__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18239:2: rule__PhysicalNode__Group__10__Impl rule__PhysicalNode__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__10__Impl_in_rule__PhysicalNode__Group__1036234);
+            rule__PhysicalNode__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__11_in_rule__PhysicalNode__Group__1036237);
+            rule__PhysicalNode__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__10"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18246:1: rule__PhysicalNode__Group__10__Impl : ( ( rule__PhysicalNode__Group_10__0 )? ) ;
+    public final void rule__PhysicalNode__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18250:1: ( ( ( rule__PhysicalNode__Group_10__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18251:1: ( ( rule__PhysicalNode__Group_10__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18251:1: ( ( rule__PhysicalNode__Group_10__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18252:1: ( rule__PhysicalNode__Group_10__0 )?
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18253:1: ( rule__PhysicalNode__Group_10__0 )?
+            int alt89=2;
+            int LA89_0 = input.LA(1);
+
+            if ( (LA89_0==125) ) {
+                alt89=1;
+            }
+            switch (alt89) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18253:2: rule__PhysicalNode__Group_10__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__0_in_rule__PhysicalNode__Group__10__Impl36264);
+                    rule__PhysicalNode__Group_10__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__10__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18263:1: rule__PhysicalNode__Group__11 : rule__PhysicalNode__Group__11__Impl ;
+    public final void rule__PhysicalNode__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18267:1: ( rule__PhysicalNode__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18268:2: rule__PhysicalNode__Group__11__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group__11__Impl_in_rule__PhysicalNode__Group__1136295);
+            rule__PhysicalNode__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__11"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18274:1: rule__PhysicalNode__Group__11__Impl : ( '}' ) ;
+    public final void rule__PhysicalNode__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18278:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18279:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18279:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18280:1: '}'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__PhysicalNode__Group__11__Impl36323); 
+             after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group__11__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18317:1: rule__PhysicalNode__Group_5__0 : rule__PhysicalNode__Group_5__0__Impl rule__PhysicalNode__Group_5__1 ;
+    public final void rule__PhysicalNode__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18321:1: ( rule__PhysicalNode__Group_5__0__Impl rule__PhysicalNode__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18322:2: rule__PhysicalNode__Group_5__0__Impl rule__PhysicalNode__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__0__Impl_in_rule__PhysicalNode__Group_5__036378);
+            rule__PhysicalNode__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__1_in_rule__PhysicalNode__Group_5__036381);
+            rule__PhysicalNode__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18329:1: rule__PhysicalNode__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__PhysicalNode__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18333:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18334:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18334:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18335:1: 'alternativeNames'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__PhysicalNode__Group_5__0__Impl36409); 
+             after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18348:1: rule__PhysicalNode__Group_5__1 : rule__PhysicalNode__Group_5__1__Impl rule__PhysicalNode__Group_5__2 ;
+    public final void rule__PhysicalNode__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18352:1: ( rule__PhysicalNode__Group_5__1__Impl rule__PhysicalNode__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18353:2: rule__PhysicalNode__Group_5__1__Impl rule__PhysicalNode__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__1__Impl_in_rule__PhysicalNode__Group_5__136440);
+            rule__PhysicalNode__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__2_in_rule__PhysicalNode__Group_5__136443);
+            rule__PhysicalNode__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18360:1: rule__PhysicalNode__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__PhysicalNode__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18364:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18365:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18365:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18366:1: '{'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__PhysicalNode__Group_5__1__Impl36471); 
+             after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18379:1: rule__PhysicalNode__Group_5__2 : rule__PhysicalNode__Group_5__2__Impl rule__PhysicalNode__Group_5__3 ;
+    public final void rule__PhysicalNode__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18383:1: ( rule__PhysicalNode__Group_5__2__Impl rule__PhysicalNode__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18384:2: rule__PhysicalNode__Group_5__2__Impl rule__PhysicalNode__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__2__Impl_in_rule__PhysicalNode__Group_5__236502);
+            rule__PhysicalNode__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__3_in_rule__PhysicalNode__Group_5__236505);
+            rule__PhysicalNode__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__2"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18391:1: rule__PhysicalNode__Group_5__2__Impl : ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__PhysicalNode__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18395:1: ( ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18396:1: ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18396:1: ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18397:1: ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18398:1: ( rule__PhysicalNode__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18398:2: rule__PhysicalNode__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__AlternativeNamesAssignment_5_2_in_rule__PhysicalNode__Group_5__2__Impl36532);
+            rule__PhysicalNode__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18408:1: rule__PhysicalNode__Group_5__3 : rule__PhysicalNode__Group_5__3__Impl rule__PhysicalNode__Group_5__4 ;
+    public final void rule__PhysicalNode__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18412:1: ( rule__PhysicalNode__Group_5__3__Impl rule__PhysicalNode__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18413:2: rule__PhysicalNode__Group_5__3__Impl rule__PhysicalNode__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__3__Impl_in_rule__PhysicalNode__Group_5__336562);
+            rule__PhysicalNode__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__4_in_rule__PhysicalNode__Group_5__336565);
+            rule__PhysicalNode__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__3"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18420:1: rule__PhysicalNode__Group_5__3__Impl : ( ( rule__PhysicalNode__Group_5_3__0 )* ) ;
+    public final void rule__PhysicalNode__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18424:1: ( ( ( rule__PhysicalNode__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18425:1: ( ( rule__PhysicalNode__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18425:1: ( ( rule__PhysicalNode__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18426:1: ( rule__PhysicalNode__Group_5_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18427:1: ( rule__PhysicalNode__Group_5_3__0 )*
+            loop90:
+            do {
+                int alt90=2;
+                int LA90_0 = input.LA(1);
+
+                if ( (LA90_0==31) ) {
+                    alt90=1;
+                }
+
+
+                switch (alt90) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18427:2: rule__PhysicalNode__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5_3__0_in_rule__PhysicalNode__Group_5__3__Impl36592);
+            	    rule__PhysicalNode__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop90;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18437:1: rule__PhysicalNode__Group_5__4 : rule__PhysicalNode__Group_5__4__Impl ;
+    public final void rule__PhysicalNode__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18441:1: ( rule__PhysicalNode__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18442:2: rule__PhysicalNode__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5__4__Impl_in_rule__PhysicalNode__Group_5__436623);
+            rule__PhysicalNode__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__4"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18448:1: rule__PhysicalNode__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__PhysicalNode__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18452:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18453:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18453:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18454:1: '}'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__PhysicalNode__Group_5__4__Impl36651); 
+             after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18477:1: rule__PhysicalNode__Group_5_3__0 : rule__PhysicalNode__Group_5_3__0__Impl rule__PhysicalNode__Group_5_3__1 ;
+    public final void rule__PhysicalNode__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18481:1: ( rule__PhysicalNode__Group_5_3__0__Impl rule__PhysicalNode__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18482:2: rule__PhysicalNode__Group_5_3__0__Impl rule__PhysicalNode__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5_3__0__Impl_in_rule__PhysicalNode__Group_5_3__036692);
+            rule__PhysicalNode__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5_3__1_in_rule__PhysicalNode__Group_5_3__036695);
+            rule__PhysicalNode__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18489:1: rule__PhysicalNode__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNode__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18493:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18494:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18494:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18495:1: ','
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalNode__Group_5_3__0__Impl36723); 
+             after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18508:1: rule__PhysicalNode__Group_5_3__1 : rule__PhysicalNode__Group_5_3__1__Impl ;
+    public final void rule__PhysicalNode__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18512:1: ( rule__PhysicalNode__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18513:2: rule__PhysicalNode__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_5_3__1__Impl_in_rule__PhysicalNode__Group_5_3__136754);
+            rule__PhysicalNode__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18519:1: rule__PhysicalNode__Group_5_3__1__Impl : ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__PhysicalNode__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18523:1: ( ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18524:1: ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18524:1: ( ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18525:1: ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18526:1: ( rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18526:2: rule__PhysicalNode__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalNode__Group_5_3__1__Impl36781);
+            rule__PhysicalNode__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18540:1: rule__PhysicalNode__Group_6__0 : rule__PhysicalNode__Group_6__0__Impl rule__PhysicalNode__Group_6__1 ;
+    public final void rule__PhysicalNode__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18544:1: ( rule__PhysicalNode__Group_6__0__Impl rule__PhysicalNode__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18545:2: rule__PhysicalNode__Group_6__0__Impl rule__PhysicalNode__Group_6__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__0__Impl_in_rule__PhysicalNode__Group_6__036815);
+            rule__PhysicalNode__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__1_in_rule__PhysicalNode__Group_6__036818);
+            rule__PhysicalNode__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18552:1: rule__PhysicalNode__Group_6__0__Impl : ( 'software' ) ;
+    public final void rule__PhysicalNode__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18556:1: ( ( 'software' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18557:1: ( 'software' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18557:1: ( 'software' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18558:1: 'software'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); 
+            match(input,55,FollowSets001.FOLLOW_55_in_rule__PhysicalNode__Group_6__0__Impl36846); 
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18571:1: rule__PhysicalNode__Group_6__1 : rule__PhysicalNode__Group_6__1__Impl rule__PhysicalNode__Group_6__2 ;
+    public final void rule__PhysicalNode__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18575:1: ( rule__PhysicalNode__Group_6__1__Impl rule__PhysicalNode__Group_6__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18576:2: rule__PhysicalNode__Group_6__1__Impl rule__PhysicalNode__Group_6__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__1__Impl_in_rule__PhysicalNode__Group_6__136877);
+            rule__PhysicalNode__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__2_in_rule__PhysicalNode__Group_6__136880);
+            rule__PhysicalNode__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18583:1: rule__PhysicalNode__Group_6__1__Impl : ( '(' ) ;
+    public final void rule__PhysicalNode__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18587:1: ( ( '(' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18588:1: ( '(' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18588:1: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18589:1: '('
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); 
+            match(input,123,FollowSets001.FOLLOW_123_in_rule__PhysicalNode__Group_6__1__Impl36908); 
+             after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18602:1: rule__PhysicalNode__Group_6__2 : rule__PhysicalNode__Group_6__2__Impl rule__PhysicalNode__Group_6__3 ;
+    public final void rule__PhysicalNode__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18606:1: ( rule__PhysicalNode__Group_6__2__Impl rule__PhysicalNode__Group_6__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18607:2: rule__PhysicalNode__Group_6__2__Impl rule__PhysicalNode__Group_6__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__2__Impl_in_rule__PhysicalNode__Group_6__236939);
+            rule__PhysicalNode__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__3_in_rule__PhysicalNode__Group_6__236942);
+            rule__PhysicalNode__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__2"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18614:1: rule__PhysicalNode__Group_6__2__Impl : ( ( rule__PhysicalNode__SoftwareAssignment_6_2 ) ) ;
+    public final void rule__PhysicalNode__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18618:1: ( ( ( rule__PhysicalNode__SoftwareAssignment_6_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18619:1: ( ( rule__PhysicalNode__SoftwareAssignment_6_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18619:1: ( ( rule__PhysicalNode__SoftwareAssignment_6_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18620:1: ( rule__PhysicalNode__SoftwareAssignment_6_2 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18621:1: ( rule__PhysicalNode__SoftwareAssignment_6_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18621:2: rule__PhysicalNode__SoftwareAssignment_6_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__SoftwareAssignment_6_2_in_rule__PhysicalNode__Group_6__2__Impl36969);
+            rule__PhysicalNode__SoftwareAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18631:1: rule__PhysicalNode__Group_6__3 : rule__PhysicalNode__Group_6__3__Impl rule__PhysicalNode__Group_6__4 ;
+    public final void rule__PhysicalNode__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18635:1: ( rule__PhysicalNode__Group_6__3__Impl rule__PhysicalNode__Group_6__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18636:2: rule__PhysicalNode__Group_6__3__Impl rule__PhysicalNode__Group_6__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__3__Impl_in_rule__PhysicalNode__Group_6__336999);
+            rule__PhysicalNode__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__4_in_rule__PhysicalNode__Group_6__337002);
+            rule__PhysicalNode__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__3"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18643:1: rule__PhysicalNode__Group_6__3__Impl : ( ( rule__PhysicalNode__Group_6_3__0 )* ) ;
+    public final void rule__PhysicalNode__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18647:1: ( ( ( rule__PhysicalNode__Group_6_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18648:1: ( ( rule__PhysicalNode__Group_6_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18648:1: ( ( rule__PhysicalNode__Group_6_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18649:1: ( rule__PhysicalNode__Group_6_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18650:1: ( rule__PhysicalNode__Group_6_3__0 )*
+            loop91:
+            do {
+                int alt91=2;
+                int LA91_0 = input.LA(1);
+
+                if ( (LA91_0==31) ) {
+                    alt91=1;
+                }
+
+
+                switch (alt91) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18650:2: rule__PhysicalNode__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6_3__0_in_rule__PhysicalNode__Group_6__3__Impl37029);
+            	    rule__PhysicalNode__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop91;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18660:1: rule__PhysicalNode__Group_6__4 : rule__PhysicalNode__Group_6__4__Impl ;
+    public final void rule__PhysicalNode__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18664:1: ( rule__PhysicalNode__Group_6__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18665:2: rule__PhysicalNode__Group_6__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6__4__Impl_in_rule__PhysicalNode__Group_6__437060);
+            rule__PhysicalNode__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__4"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18671:1: rule__PhysicalNode__Group_6__4__Impl : ( ')' ) ;
+    public final void rule__PhysicalNode__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18675:1: ( ( ')' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18676:1: ( ')' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18676:1: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18677:1: ')'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); 
+            match(input,124,FollowSets001.FOLLOW_124_in_rule__PhysicalNode__Group_6__4__Impl37088); 
+             after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18700:1: rule__PhysicalNode__Group_6_3__0 : rule__PhysicalNode__Group_6_3__0__Impl rule__PhysicalNode__Group_6_3__1 ;
+    public final void rule__PhysicalNode__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18704:1: ( rule__PhysicalNode__Group_6_3__0__Impl rule__PhysicalNode__Group_6_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18705:2: rule__PhysicalNode__Group_6_3__0__Impl rule__PhysicalNode__Group_6_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6_3__0__Impl_in_rule__PhysicalNode__Group_6_3__037129);
+            rule__PhysicalNode__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6_3__1_in_rule__PhysicalNode__Group_6_3__037132);
+            rule__PhysicalNode__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18712:1: rule__PhysicalNode__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNode__Group_6_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18716:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18717:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18717:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18718:1: ','
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalNode__Group_6_3__0__Impl37160); 
+             after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18731:1: rule__PhysicalNode__Group_6_3__1 : rule__PhysicalNode__Group_6_3__1__Impl ;
+    public final void rule__PhysicalNode__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18735:1: ( rule__PhysicalNode__Group_6_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18736:2: rule__PhysicalNode__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_6_3__1__Impl_in_rule__PhysicalNode__Group_6_3__137191);
+            rule__PhysicalNode__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_6_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18742:1: rule__PhysicalNode__Group_6_3__1__Impl : ( ( rule__PhysicalNode__SoftwareAssignment_6_3_1 ) ) ;
+    public final void rule__PhysicalNode__Group_6_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18746:1: ( ( ( rule__PhysicalNode__SoftwareAssignment_6_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18747:1: ( ( rule__PhysicalNode__SoftwareAssignment_6_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18747:1: ( ( rule__PhysicalNode__SoftwareAssignment_6_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18748:1: ( rule__PhysicalNode__SoftwareAssignment_6_3_1 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18749:1: ( rule__PhysicalNode__SoftwareAssignment_6_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18749:2: rule__PhysicalNode__SoftwareAssignment_6_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__SoftwareAssignment_6_3_1_in_rule__PhysicalNode__Group_6_3__1__Impl37218);
+            rule__PhysicalNode__SoftwareAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18763:1: rule__PhysicalNode__Group_7__0 : rule__PhysicalNode__Group_7__0__Impl rule__PhysicalNode__Group_7__1 ;
+    public final void rule__PhysicalNode__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18767:1: ( rule__PhysicalNode__Group_7__0__Impl rule__PhysicalNode__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18768:2: rule__PhysicalNode__Group_7__0__Impl rule__PhysicalNode__Group_7__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__0__Impl_in_rule__PhysicalNode__Group_7__037252);
+            rule__PhysicalNode__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__1_in_rule__PhysicalNode__Group_7__037255);
+            rule__PhysicalNode__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18775:1: rule__PhysicalNode__Group_7__0__Impl : ( 'hosts' ) ;
+    public final void rule__PhysicalNode__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18779:1: ( ( 'hosts' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18780:1: ( 'hosts' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18780:1: ( 'hosts' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18781:1: 'hosts'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); 
+            match(input,127,FollowSets001.FOLLOW_127_in_rule__PhysicalNode__Group_7__0__Impl37283); 
+             after(grammarAccess.getPhysicalNodeAccess().getHostsKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18794:1: rule__PhysicalNode__Group_7__1 : rule__PhysicalNode__Group_7__1__Impl rule__PhysicalNode__Group_7__2 ;
+    public final void rule__PhysicalNode__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18798:1: ( rule__PhysicalNode__Group_7__1__Impl rule__PhysicalNode__Group_7__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18799:2: rule__PhysicalNode__Group_7__1__Impl rule__PhysicalNode__Group_7__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__1__Impl_in_rule__PhysicalNode__Group_7__137314);
+            rule__PhysicalNode__Group_7__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__2_in_rule__PhysicalNode__Group_7__137317);
+            rule__PhysicalNode__Group_7__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18806:1: rule__PhysicalNode__Group_7__1__Impl : ( '(' ) ;
+    public final void rule__PhysicalNode__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18810:1: ( ( '(' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18811:1: ( '(' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18811:1: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18812:1: '('
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); 
+            match(input,123,FollowSets001.FOLLOW_123_in_rule__PhysicalNode__Group_7__1__Impl37345); 
+             after(grammarAccess.getPhysicalNodeAccess().getLeftParenthesisKeyword_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18825:1: rule__PhysicalNode__Group_7__2 : rule__PhysicalNode__Group_7__2__Impl rule__PhysicalNode__Group_7__3 ;
+    public final void rule__PhysicalNode__Group_7__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18829:1: ( rule__PhysicalNode__Group_7__2__Impl rule__PhysicalNode__Group_7__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18830:2: rule__PhysicalNode__Group_7__2__Impl rule__PhysicalNode__Group_7__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__2__Impl_in_rule__PhysicalNode__Group_7__237376);
+            rule__PhysicalNode__Group_7__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__3_in_rule__PhysicalNode__Group_7__237379);
+            rule__PhysicalNode__Group_7__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__2"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18837:1: rule__PhysicalNode__Group_7__2__Impl : ( ( rule__PhysicalNode__HostsAssignment_7_2 ) ) ;
+    public final void rule__PhysicalNode__Group_7__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18841:1: ( ( ( rule__PhysicalNode__HostsAssignment_7_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18842:1: ( ( rule__PhysicalNode__HostsAssignment_7_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18842:1: ( ( rule__PhysicalNode__HostsAssignment_7_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18843:1: ( rule__PhysicalNode__HostsAssignment_7_2 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18844:1: ( rule__PhysicalNode__HostsAssignment_7_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18844:2: rule__PhysicalNode__HostsAssignment_7_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__HostsAssignment_7_2_in_rule__PhysicalNode__Group_7__2__Impl37406);
+            rule__PhysicalNode__HostsAssignment_7_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18854:1: rule__PhysicalNode__Group_7__3 : rule__PhysicalNode__Group_7__3__Impl rule__PhysicalNode__Group_7__4 ;
+    public final void rule__PhysicalNode__Group_7__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18858:1: ( rule__PhysicalNode__Group_7__3__Impl rule__PhysicalNode__Group_7__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18859:2: rule__PhysicalNode__Group_7__3__Impl rule__PhysicalNode__Group_7__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__3__Impl_in_rule__PhysicalNode__Group_7__337436);
+            rule__PhysicalNode__Group_7__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__4_in_rule__PhysicalNode__Group_7__337439);
+            rule__PhysicalNode__Group_7__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__3"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18866:1: rule__PhysicalNode__Group_7__3__Impl : ( ( rule__PhysicalNode__Group_7_3__0 )* ) ;
+    public final void rule__PhysicalNode__Group_7__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18870:1: ( ( ( rule__PhysicalNode__Group_7_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18871:1: ( ( rule__PhysicalNode__Group_7_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18871:1: ( ( rule__PhysicalNode__Group_7_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18872:1: ( rule__PhysicalNode__Group_7_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18873:1: ( rule__PhysicalNode__Group_7_3__0 )*
+            loop92:
+            do {
+                int alt92=2;
+                int LA92_0 = input.LA(1);
+
+                if ( (LA92_0==31) ) {
+                    alt92=1;
+                }
+
+
+                switch (alt92) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18873:2: rule__PhysicalNode__Group_7_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7_3__0_in_rule__PhysicalNode__Group_7__3__Impl37466);
+            	    rule__PhysicalNode__Group_7_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop92;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_7_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18883:1: rule__PhysicalNode__Group_7__4 : rule__PhysicalNode__Group_7__4__Impl ;
+    public final void rule__PhysicalNode__Group_7__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18887:1: ( rule__PhysicalNode__Group_7__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18888:2: rule__PhysicalNode__Group_7__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7__4__Impl_in_rule__PhysicalNode__Group_7__437497);
+            rule__PhysicalNode__Group_7__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__4"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18894:1: rule__PhysicalNode__Group_7__4__Impl : ( ')' ) ;
+    public final void rule__PhysicalNode__Group_7__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18898:1: ( ( ')' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18899:1: ( ')' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18899:1: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18900:1: ')'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); 
+            match(input,124,FollowSets001.FOLLOW_124_in_rule__PhysicalNode__Group_7__4__Impl37525); 
+             after(grammarAccess.getPhysicalNodeAccess().getRightParenthesisKeyword_7_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18923:1: rule__PhysicalNode__Group_7_3__0 : rule__PhysicalNode__Group_7_3__0__Impl rule__PhysicalNode__Group_7_3__1 ;
+    public final void rule__PhysicalNode__Group_7_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18927:1: ( rule__PhysicalNode__Group_7_3__0__Impl rule__PhysicalNode__Group_7_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18928:2: rule__PhysicalNode__Group_7_3__0__Impl rule__PhysicalNode__Group_7_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7_3__0__Impl_in_rule__PhysicalNode__Group_7_3__037566);
+            rule__PhysicalNode__Group_7_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7_3__1_in_rule__PhysicalNode__Group_7_3__037569);
+            rule__PhysicalNode__Group_7_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18935:1: rule__PhysicalNode__Group_7_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNode__Group_7_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18939:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18940:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18940:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18941:1: ','
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalNode__Group_7_3__0__Impl37597); 
+             after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_7_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18954:1: rule__PhysicalNode__Group_7_3__1 : rule__PhysicalNode__Group_7_3__1__Impl ;
+    public final void rule__PhysicalNode__Group_7_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18958:1: ( rule__PhysicalNode__Group_7_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18959:2: rule__PhysicalNode__Group_7_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_7_3__1__Impl_in_rule__PhysicalNode__Group_7_3__137628);
+            rule__PhysicalNode__Group_7_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_7_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18965:1: rule__PhysicalNode__Group_7_3__1__Impl : ( ( rule__PhysicalNode__HostsAssignment_7_3_1 ) ) ;
+    public final void rule__PhysicalNode__Group_7_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18969:1: ( ( ( rule__PhysicalNode__HostsAssignment_7_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18970:1: ( ( rule__PhysicalNode__HostsAssignment_7_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18970:1: ( ( rule__PhysicalNode__HostsAssignment_7_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18971:1: ( rule__PhysicalNode__HostsAssignment_7_3_1 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18972:1: ( rule__PhysicalNode__HostsAssignment_7_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18972:2: rule__PhysicalNode__HostsAssignment_7_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__HostsAssignment_7_3_1_in_rule__PhysicalNode__Group_7_3__1__Impl37655);
+            rule__PhysicalNode__HostsAssignment_7_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsAssignment_7_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_7_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18986:1: rule__PhysicalNode__Group_10__0 : rule__PhysicalNode__Group_10__0__Impl rule__PhysicalNode__Group_10__1 ;
+    public final void rule__PhysicalNode__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18990:1: ( rule__PhysicalNode__Group_10__0__Impl rule__PhysicalNode__Group_10__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18991:2: rule__PhysicalNode__Group_10__0__Impl rule__PhysicalNode__Group_10__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__0__Impl_in_rule__PhysicalNode__Group_10__037689);
+            rule__PhysicalNode__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__1_in_rule__PhysicalNode__Group_10__037692);
+            rule__PhysicalNode__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:18998:1: rule__PhysicalNode__Group_10__0__Impl : ( 'interfaces' ) ;
+    public final void rule__PhysicalNode__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19002:1: ( ( 'interfaces' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19003:1: ( 'interfaces' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19003:1: ( 'interfaces' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19004:1: 'interfaces'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); 
+            match(input,125,FollowSets001.FOLLOW_125_in_rule__PhysicalNode__Group_10__0__Impl37720); 
+             after(grammarAccess.getPhysicalNodeAccess().getInterfacesKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19017:1: rule__PhysicalNode__Group_10__1 : rule__PhysicalNode__Group_10__1__Impl rule__PhysicalNode__Group_10__2 ;
+    public final void rule__PhysicalNode__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19021:1: ( rule__PhysicalNode__Group_10__1__Impl rule__PhysicalNode__Group_10__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19022:2: rule__PhysicalNode__Group_10__1__Impl rule__PhysicalNode__Group_10__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__1__Impl_in_rule__PhysicalNode__Group_10__137751);
+            rule__PhysicalNode__Group_10__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__2_in_rule__PhysicalNode__Group_10__137754);
+            rule__PhysicalNode__Group_10__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19029:1: rule__PhysicalNode__Group_10__1__Impl : ( '{' ) ;
+    public final void rule__PhysicalNode__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19033:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19034:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19034:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19035:1: '{'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__PhysicalNode__Group_10__1__Impl37782); 
+             after(grammarAccess.getPhysicalNodeAccess().getLeftCurlyBracketKeyword_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19048:1: rule__PhysicalNode__Group_10__2 : rule__PhysicalNode__Group_10__2__Impl rule__PhysicalNode__Group_10__3 ;
+    public final void rule__PhysicalNode__Group_10__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19052:1: ( rule__PhysicalNode__Group_10__2__Impl rule__PhysicalNode__Group_10__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19053:2: rule__PhysicalNode__Group_10__2__Impl rule__PhysicalNode__Group_10__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__2__Impl_in_rule__PhysicalNode__Group_10__237813);
+            rule__PhysicalNode__Group_10__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__3_in_rule__PhysicalNode__Group_10__237816);
+            rule__PhysicalNode__Group_10__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__2"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19060:1: rule__PhysicalNode__Group_10__2__Impl : ( ( rule__PhysicalNode__InterfacesAssignment_10_2 ) ) ;
+    public final void rule__PhysicalNode__Group_10__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19064:1: ( ( ( rule__PhysicalNode__InterfacesAssignment_10_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19065:1: ( ( rule__PhysicalNode__InterfacesAssignment_10_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19065:1: ( ( rule__PhysicalNode__InterfacesAssignment_10_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19066:1: ( rule__PhysicalNode__InterfacesAssignment_10_2 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19067:1: ( rule__PhysicalNode__InterfacesAssignment_10_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19067:2: rule__PhysicalNode__InterfacesAssignment_10_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__InterfacesAssignment_10_2_in_rule__PhysicalNode__Group_10__2__Impl37843);
+            rule__PhysicalNode__InterfacesAssignment_10_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19077:1: rule__PhysicalNode__Group_10__3 : rule__PhysicalNode__Group_10__3__Impl rule__PhysicalNode__Group_10__4 ;
+    public final void rule__PhysicalNode__Group_10__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19081:1: ( rule__PhysicalNode__Group_10__3__Impl rule__PhysicalNode__Group_10__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19082:2: rule__PhysicalNode__Group_10__3__Impl rule__PhysicalNode__Group_10__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__3__Impl_in_rule__PhysicalNode__Group_10__337873);
+            rule__PhysicalNode__Group_10__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__4_in_rule__PhysicalNode__Group_10__337876);
+            rule__PhysicalNode__Group_10__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__3"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19089:1: rule__PhysicalNode__Group_10__3__Impl : ( ( rule__PhysicalNode__Group_10_3__0 )* ) ;
+    public final void rule__PhysicalNode__Group_10__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19093:1: ( ( ( rule__PhysicalNode__Group_10_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19094:1: ( ( rule__PhysicalNode__Group_10_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19094:1: ( ( rule__PhysicalNode__Group_10_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19095:1: ( rule__PhysicalNode__Group_10_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19096:1: ( rule__PhysicalNode__Group_10_3__0 )*
+            loop93:
+            do {
+                int alt93=2;
+                int LA93_0 = input.LA(1);
+
+                if ( (LA93_0==31) ) {
+                    alt93=1;
+                }
+
+
+                switch (alt93) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19096:2: rule__PhysicalNode__Group_10_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10_3__0_in_rule__PhysicalNode__Group_10__3__Impl37903);
+            	    rule__PhysicalNode__Group_10_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop93;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNodeAccess().getGroup_10_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19106:1: rule__PhysicalNode__Group_10__4 : rule__PhysicalNode__Group_10__4__Impl ;
+    public final void rule__PhysicalNode__Group_10__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19110:1: ( rule__PhysicalNode__Group_10__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19111:2: rule__PhysicalNode__Group_10__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10__4__Impl_in_rule__PhysicalNode__Group_10__437934);
+            rule__PhysicalNode__Group_10__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__4"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19117:1: rule__PhysicalNode__Group_10__4__Impl : ( '}' ) ;
+    public final void rule__PhysicalNode__Group_10__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19121:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19122:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19122:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19123:1: '}'
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__PhysicalNode__Group_10__4__Impl37962); 
+             after(grammarAccess.getPhysicalNodeAccess().getRightCurlyBracketKeyword_10_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19146:1: rule__PhysicalNode__Group_10_3__0 : rule__PhysicalNode__Group_10_3__0__Impl rule__PhysicalNode__Group_10_3__1 ;
+    public final void rule__PhysicalNode__Group_10_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19150:1: ( rule__PhysicalNode__Group_10_3__0__Impl rule__PhysicalNode__Group_10_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19151:2: rule__PhysicalNode__Group_10_3__0__Impl rule__PhysicalNode__Group_10_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10_3__0__Impl_in_rule__PhysicalNode__Group_10_3__038003);
+            rule__PhysicalNode__Group_10_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10_3__1_in_rule__PhysicalNode__Group_10_3__038006);
+            rule__PhysicalNode__Group_10_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19158:1: rule__PhysicalNode__Group_10_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNode__Group_10_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19162:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19163:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19163:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19164:1: ','
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalNode__Group_10_3__0__Impl38034); 
+             after(grammarAccess.getPhysicalNodeAccess().getCommaKeyword_10_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19177:1: rule__PhysicalNode__Group_10_3__1 : rule__PhysicalNode__Group_10_3__1__Impl ;
+    public final void rule__PhysicalNode__Group_10_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19181:1: ( rule__PhysicalNode__Group_10_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19182:2: rule__PhysicalNode__Group_10_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__Group_10_3__1__Impl_in_rule__PhysicalNode__Group_10_3__138065);
+            rule__PhysicalNode__Group_10_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNode__Group_10_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19188:1: rule__PhysicalNode__Group_10_3__1__Impl : ( ( rule__PhysicalNode__InterfacesAssignment_10_3_1 ) ) ;
+    public final void rule__PhysicalNode__Group_10_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19192:1: ( ( ( rule__PhysicalNode__InterfacesAssignment_10_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19193:1: ( ( rule__PhysicalNode__InterfacesAssignment_10_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19193:1: ( ( rule__PhysicalNode__InterfacesAssignment_10_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19194:1: ( rule__PhysicalNode__InterfacesAssignment_10_3_1 )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19195:1: ( rule__PhysicalNode__InterfacesAssignment_10_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19195:2: rule__PhysicalNode__InterfacesAssignment_10_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalNode__InterfacesAssignment_10_3_1_in_rule__PhysicalNode__Group_10_3__1__Impl38092);
+            rule__PhysicalNode__InterfacesAssignment_10_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getInterfacesAssignment_10_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__Group_10_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19209:1: rule__PhysicalLink__Group__0 : rule__PhysicalLink__Group__0__Impl rule__PhysicalLink__Group__1 ;
+    public final void rule__PhysicalLink__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19213:1: ( rule__PhysicalLink__Group__0__Impl rule__PhysicalLink__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19214:2: rule__PhysicalLink__Group__0__Impl rule__PhysicalLink__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__0__Impl_in_rule__PhysicalLink__Group__038126);
+            rule__PhysicalLink__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__1_in_rule__PhysicalLink__Group__038129);
+            rule__PhysicalLink__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__0"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19221:1: rule__PhysicalLink__Group__0__Impl : ( 'PhysicalLink' ) ;
+    public final void rule__PhysicalLink__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19225:1: ( ( 'PhysicalLink' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19226:1: ( 'PhysicalLink' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19226:1: ( 'PhysicalLink' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19227:1: 'PhysicalLink'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); 
+            match(input,128,FollowSets001.FOLLOW_128_in_rule__PhysicalLink__Group__0__Impl38157); 
+             after(grammarAccess.getPhysicalLinkAccess().getPhysicalLinkKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19240:1: rule__PhysicalLink__Group__1 : rule__PhysicalLink__Group__1__Impl rule__PhysicalLink__Group__2 ;
+    public final void rule__PhysicalLink__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19244:1: ( rule__PhysicalLink__Group__1__Impl rule__PhysicalLink__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19245:2: rule__PhysicalLink__Group__1__Impl rule__PhysicalLink__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__1__Impl_in_rule__PhysicalLink__Group__138188);
+            rule__PhysicalLink__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__2_in_rule__PhysicalLink__Group__138191);
+            rule__PhysicalLink__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__1"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19252:1: rule__PhysicalLink__Group__1__Impl : ( ( rule__PhysicalLink__IdAssignment_1 ) ) ;
+    public final void rule__PhysicalLink__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19256:1: ( ( ( rule__PhysicalLink__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19257:1: ( ( rule__PhysicalLink__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19257:1: ( ( rule__PhysicalLink__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19258:1: ( rule__PhysicalLink__IdAssignment_1 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19259:1: ( rule__PhysicalLink__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19259:2: rule__PhysicalLink__IdAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__IdAssignment_1_in_rule__PhysicalLink__Group__1__Impl38218);
+            rule__PhysicalLink__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19269:1: rule__PhysicalLink__Group__2 : rule__PhysicalLink__Group__2__Impl rule__PhysicalLink__Group__3 ;
+    public final void rule__PhysicalLink__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19273:1: ( rule__PhysicalLink__Group__2__Impl rule__PhysicalLink__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19274:2: rule__PhysicalLink__Group__2__Impl rule__PhysicalLink__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__2__Impl_in_rule__PhysicalLink__Group__238248);
+            rule__PhysicalLink__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__3_in_rule__PhysicalLink__Group__238251);
+            rule__PhysicalLink__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__2"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19281:1: rule__PhysicalLink__Group__2__Impl : ( '{' ) ;
+    public final void rule__PhysicalLink__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19285:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19286:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19286:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19287:1: '{'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__PhysicalLink__Group__2__Impl38279); 
+             after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19300:1: rule__PhysicalLink__Group__3 : rule__PhysicalLink__Group__3__Impl rule__PhysicalLink__Group__4 ;
+    public final void rule__PhysicalLink__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19304:1: ( rule__PhysicalLink__Group__3__Impl rule__PhysicalLink__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19305:2: rule__PhysicalLink__Group__3__Impl rule__PhysicalLink__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__3__Impl_in_rule__PhysicalLink__Group__338310);
+            rule__PhysicalLink__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__4_in_rule__PhysicalLink__Group__338313);
+            rule__PhysicalLink__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__3"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19312:1: rule__PhysicalLink__Group__3__Impl : ( 'name' ) ;
+    public final void rule__PhysicalLink__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19316:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19317:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19317:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19318:1: 'name'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets001.FOLLOW_65_in_rule__PhysicalLink__Group__3__Impl38341); 
+             after(grammarAccess.getPhysicalLinkAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19331:1: rule__PhysicalLink__Group__4 : rule__PhysicalLink__Group__4__Impl rule__PhysicalLink__Group__5 ;
+    public final void rule__PhysicalLink__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19335:1: ( rule__PhysicalLink__Group__4__Impl rule__PhysicalLink__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19336:2: rule__PhysicalLink__Group__4__Impl rule__PhysicalLink__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__4__Impl_in_rule__PhysicalLink__Group__438372);
+            rule__PhysicalLink__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__5_in_rule__PhysicalLink__Group__438375);
+            rule__PhysicalLink__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__4"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19343:1: rule__PhysicalLink__Group__4__Impl : ( ( rule__PhysicalLink__NameAssignment_4 ) ) ;
+    public final void rule__PhysicalLink__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19347:1: ( ( ( rule__PhysicalLink__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19348:1: ( ( rule__PhysicalLink__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19348:1: ( ( rule__PhysicalLink__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19349:1: ( rule__PhysicalLink__NameAssignment_4 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19350:1: ( rule__PhysicalLink__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19350:2: rule__PhysicalLink__NameAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__NameAssignment_4_in_rule__PhysicalLink__Group__4__Impl38402);
+            rule__PhysicalLink__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19360:1: rule__PhysicalLink__Group__5 : rule__PhysicalLink__Group__5__Impl rule__PhysicalLink__Group__6 ;
+    public final void rule__PhysicalLink__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19364:1: ( rule__PhysicalLink__Group__5__Impl rule__PhysicalLink__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19365:2: rule__PhysicalLink__Group__5__Impl rule__PhysicalLink__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__5__Impl_in_rule__PhysicalLink__Group__538432);
+            rule__PhysicalLink__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__6_in_rule__PhysicalLink__Group__538435);
+            rule__PhysicalLink__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__5"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19372:1: rule__PhysicalLink__Group__5__Impl : ( ( rule__PhysicalLink__Group_5__0 )? ) ;
+    public final void rule__PhysicalLink__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19376:1: ( ( ( rule__PhysicalLink__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19377:1: ( ( rule__PhysicalLink__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19377:1: ( ( rule__PhysicalLink__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19378:1: ( rule__PhysicalLink__Group_5__0 )?
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19379:1: ( rule__PhysicalLink__Group_5__0 )?
+            int alt94=2;
+            int LA94_0 = input.LA(1);
+
+            if ( (LA94_0==67) ) {
+                alt94=1;
+            }
+            switch (alt94) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19379:2: rule__PhysicalLink__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__0_in_rule__PhysicalLink__Group__5__Impl38462);
+                    rule__PhysicalLink__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19389:1: rule__PhysicalLink__Group__6 : rule__PhysicalLink__Group__6__Impl rule__PhysicalLink__Group__7 ;
+    public final void rule__PhysicalLink__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19393:1: ( rule__PhysicalLink__Group__6__Impl rule__PhysicalLink__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19394:2: rule__PhysicalLink__Group__6__Impl rule__PhysicalLink__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__6__Impl_in_rule__PhysicalLink__Group__638493);
+            rule__PhysicalLink__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__7_in_rule__PhysicalLink__Group__638496);
+            rule__PhysicalLink__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__6"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19401:1: rule__PhysicalLink__Group__6__Impl : ( 'connects' ) ;
+    public final void rule__PhysicalLink__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19405:1: ( ( 'connects' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19406:1: ( 'connects' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19406:1: ( 'connects' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19407:1: 'connects'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); 
+            match(input,129,FollowSets001.FOLLOW_129_in_rule__PhysicalLink__Group__6__Impl38524); 
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19420:1: rule__PhysicalLink__Group__7 : rule__PhysicalLink__Group__7__Impl rule__PhysicalLink__Group__8 ;
+    public final void rule__PhysicalLink__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19424:1: ( rule__PhysicalLink__Group__7__Impl rule__PhysicalLink__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19425:2: rule__PhysicalLink__Group__7__Impl rule__PhysicalLink__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__7__Impl_in_rule__PhysicalLink__Group__738555);
+            rule__PhysicalLink__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__8_in_rule__PhysicalLink__Group__738558);
+            rule__PhysicalLink__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__7"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19432:1: rule__PhysicalLink__Group__7__Impl : ( '(' ) ;
+    public final void rule__PhysicalLink__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19436:1: ( ( '(' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19437:1: ( '(' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19437:1: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19438:1: '('
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); 
+            match(input,123,FollowSets001.FOLLOW_123_in_rule__PhysicalLink__Group__7__Impl38586); 
+             after(grammarAccess.getPhysicalLinkAccess().getLeftParenthesisKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19451:1: rule__PhysicalLink__Group__8 : rule__PhysicalLink__Group__8__Impl rule__PhysicalLink__Group__9 ;
+    public final void rule__PhysicalLink__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19455:1: ( rule__PhysicalLink__Group__8__Impl rule__PhysicalLink__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19456:2: rule__PhysicalLink__Group__8__Impl rule__PhysicalLink__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__8__Impl_in_rule__PhysicalLink__Group__838617);
+            rule__PhysicalLink__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__9_in_rule__PhysicalLink__Group__838620);
+            rule__PhysicalLink__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__8"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19463:1: rule__PhysicalLink__Group__8__Impl : ( ( rule__PhysicalLink__ConnectsAssignment_8 ) ) ;
+    public final void rule__PhysicalLink__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19467:1: ( ( ( rule__PhysicalLink__ConnectsAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19468:1: ( ( rule__PhysicalLink__ConnectsAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19468:1: ( ( rule__PhysicalLink__ConnectsAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19469:1: ( rule__PhysicalLink__ConnectsAssignment_8 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19470:1: ( rule__PhysicalLink__ConnectsAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19470:2: rule__PhysicalLink__ConnectsAssignment_8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__ConnectsAssignment_8_in_rule__PhysicalLink__Group__8__Impl38647);
+            rule__PhysicalLink__ConnectsAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19480:1: rule__PhysicalLink__Group__9 : rule__PhysicalLink__Group__9__Impl rule__PhysicalLink__Group__10 ;
+    public final void rule__PhysicalLink__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19484:1: ( rule__PhysicalLink__Group__9__Impl rule__PhysicalLink__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19485:2: rule__PhysicalLink__Group__9__Impl rule__PhysicalLink__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__9__Impl_in_rule__PhysicalLink__Group__938677);
+            rule__PhysicalLink__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__10_in_rule__PhysicalLink__Group__938680);
+            rule__PhysicalLink__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__9"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19492:1: rule__PhysicalLink__Group__9__Impl : ( ( rule__PhysicalLink__Group_9__0 )* ) ;
+    public final void rule__PhysicalLink__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19496:1: ( ( ( rule__PhysicalLink__Group_9__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19497:1: ( ( rule__PhysicalLink__Group_9__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19497:1: ( ( rule__PhysicalLink__Group_9__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19498:1: ( rule__PhysicalLink__Group_9__0 )*
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getGroup_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19499:1: ( rule__PhysicalLink__Group_9__0 )*
+            loop95:
+            do {
+                int alt95=2;
+                int LA95_0 = input.LA(1);
+
+                if ( (LA95_0==31) ) {
+                    alt95=1;
+                }
+
+
+                switch (alt95) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19499:2: rule__PhysicalLink__Group_9__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_9__0_in_rule__PhysicalLink__Group__9__Impl38707);
+            	    rule__PhysicalLink__Group_9__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop95;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalLinkAccess().getGroup_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19509:1: rule__PhysicalLink__Group__10 : rule__PhysicalLink__Group__10__Impl rule__PhysicalLink__Group__11 ;
+    public final void rule__PhysicalLink__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19513:1: ( rule__PhysicalLink__Group__10__Impl rule__PhysicalLink__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19514:2: rule__PhysicalLink__Group__10__Impl rule__PhysicalLink__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__10__Impl_in_rule__PhysicalLink__Group__1038738);
+            rule__PhysicalLink__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__11_in_rule__PhysicalLink__Group__1038741);
+            rule__PhysicalLink__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__10"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19521:1: rule__PhysicalLink__Group__10__Impl : ( ')' ) ;
+    public final void rule__PhysicalLink__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19525:1: ( ( ')' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19526:1: ( ')' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19526:1: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19527:1: ')'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); 
+            match(input,124,FollowSets001.FOLLOW_124_in_rule__PhysicalLink__Group__10__Impl38769); 
+             after(grammarAccess.getPhysicalLinkAccess().getRightParenthesisKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__10__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19540:1: rule__PhysicalLink__Group__11 : rule__PhysicalLink__Group__11__Impl rule__PhysicalLink__Group__12 ;
+    public final void rule__PhysicalLink__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19544:1: ( rule__PhysicalLink__Group__11__Impl rule__PhysicalLink__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19545:2: rule__PhysicalLink__Group__11__Impl rule__PhysicalLink__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__11__Impl_in_rule__PhysicalLink__Group__1138800);
+            rule__PhysicalLink__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__12_in_rule__PhysicalLink__Group__1138803);
+            rule__PhysicalLink__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__11"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19552:1: rule__PhysicalLink__Group__11__Impl : ( 'performance' ) ;
+    public final void rule__PhysicalLink__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19556:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19557:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19557:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19558:1: 'performance'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); 
+            match(input,122,FollowSets001.FOLLOW_122_in_rule__PhysicalLink__Group__11__Impl38831); 
+             after(grammarAccess.getPhysicalLinkAccess().getPerformanceKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__11__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19571:1: rule__PhysicalLink__Group__12 : rule__PhysicalLink__Group__12__Impl rule__PhysicalLink__Group__13 ;
+    public final void rule__PhysicalLink__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19575:1: ( rule__PhysicalLink__Group__12__Impl rule__PhysicalLink__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19576:2: rule__PhysicalLink__Group__12__Impl rule__PhysicalLink__Group__13
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__12__Impl_in_rule__PhysicalLink__Group__1238862);
+            rule__PhysicalLink__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__13_in_rule__PhysicalLink__Group__1238865);
+            rule__PhysicalLink__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__12"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19583:1: rule__PhysicalLink__Group__12__Impl : ( ( rule__PhysicalLink__PerformanceAssignment_12 ) ) ;
+    public final void rule__PhysicalLink__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19587:1: ( ( ( rule__PhysicalLink__PerformanceAssignment_12 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19588:1: ( ( rule__PhysicalLink__PerformanceAssignment_12 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19588:1: ( ( rule__PhysicalLink__PerformanceAssignment_12 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19589:1: ( rule__PhysicalLink__PerformanceAssignment_12 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19590:1: ( rule__PhysicalLink__PerformanceAssignment_12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19590:2: rule__PhysicalLink__PerformanceAssignment_12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__PerformanceAssignment_12_in_rule__PhysicalLink__Group__12__Impl38892);
+            rule__PhysicalLink__PerformanceAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getPerformanceAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__12__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19600:1: rule__PhysicalLink__Group__13 : rule__PhysicalLink__Group__13__Impl ;
+    public final void rule__PhysicalLink__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19604:1: ( rule__PhysicalLink__Group__13__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19605:2: rule__PhysicalLink__Group__13__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group__13__Impl_in_rule__PhysicalLink__Group__1338922);
+            rule__PhysicalLink__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__13"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19611:1: rule__PhysicalLink__Group__13__Impl : ( '}' ) ;
+    public final void rule__PhysicalLink__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19615:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19616:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19616:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19617:1: '}'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__PhysicalLink__Group__13__Impl38950); 
+             after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group__13__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19658:1: rule__PhysicalLink__Group_5__0 : rule__PhysicalLink__Group_5__0__Impl rule__PhysicalLink__Group_5__1 ;
+    public final void rule__PhysicalLink__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19662:1: ( rule__PhysicalLink__Group_5__0__Impl rule__PhysicalLink__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19663:2: rule__PhysicalLink__Group_5__0__Impl rule__PhysicalLink__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__0__Impl_in_rule__PhysicalLink__Group_5__039009);
+            rule__PhysicalLink__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__1_in_rule__PhysicalLink__Group_5__039012);
+            rule__PhysicalLink__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__0"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19670:1: rule__PhysicalLink__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__PhysicalLink__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19674:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19675:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19675:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19676:1: 'alternativeNames'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__PhysicalLink__Group_5__0__Impl39040); 
+             after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19689:1: rule__PhysicalLink__Group_5__1 : rule__PhysicalLink__Group_5__1__Impl rule__PhysicalLink__Group_5__2 ;
+    public final void rule__PhysicalLink__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19693:1: ( rule__PhysicalLink__Group_5__1__Impl rule__PhysicalLink__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19694:2: rule__PhysicalLink__Group_5__1__Impl rule__PhysicalLink__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__1__Impl_in_rule__PhysicalLink__Group_5__139071);
+            rule__PhysicalLink__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__2_in_rule__PhysicalLink__Group_5__139074);
+            rule__PhysicalLink__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__1"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19701:1: rule__PhysicalLink__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__PhysicalLink__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19705:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19706:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19706:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19707:1: '{'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__PhysicalLink__Group_5__1__Impl39102); 
+             after(grammarAccess.getPhysicalLinkAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19720:1: rule__PhysicalLink__Group_5__2 : rule__PhysicalLink__Group_5__2__Impl rule__PhysicalLink__Group_5__3 ;
+    public final void rule__PhysicalLink__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19724:1: ( rule__PhysicalLink__Group_5__2__Impl rule__PhysicalLink__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19725:2: rule__PhysicalLink__Group_5__2__Impl rule__PhysicalLink__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__2__Impl_in_rule__PhysicalLink__Group_5__239133);
+            rule__PhysicalLink__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__3_in_rule__PhysicalLink__Group_5__239136);
+            rule__PhysicalLink__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__2"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19732:1: rule__PhysicalLink__Group_5__2__Impl : ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__PhysicalLink__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19736:1: ( ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19737:1: ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19737:1: ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19738:1: ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19739:1: ( rule__PhysicalLink__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19739:2: rule__PhysicalLink__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__AlternativeNamesAssignment_5_2_in_rule__PhysicalLink__Group_5__2__Impl39163);
+            rule__PhysicalLink__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19749:1: rule__PhysicalLink__Group_5__3 : rule__PhysicalLink__Group_5__3__Impl rule__PhysicalLink__Group_5__4 ;
+    public final void rule__PhysicalLink__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19753:1: ( rule__PhysicalLink__Group_5__3__Impl rule__PhysicalLink__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19754:2: rule__PhysicalLink__Group_5__3__Impl rule__PhysicalLink__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__3__Impl_in_rule__PhysicalLink__Group_5__339193);
+            rule__PhysicalLink__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__4_in_rule__PhysicalLink__Group_5__339196);
+            rule__PhysicalLink__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__3"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19761:1: rule__PhysicalLink__Group_5__3__Impl : ( ( rule__PhysicalLink__Group_5_3__0 )* ) ;
+    public final void rule__PhysicalLink__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19765:1: ( ( ( rule__PhysicalLink__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19766:1: ( ( rule__PhysicalLink__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19766:1: ( ( rule__PhysicalLink__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19767:1: ( rule__PhysicalLink__Group_5_3__0 )*
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19768:1: ( rule__PhysicalLink__Group_5_3__0 )*
+            loop96:
+            do {
+                int alt96=2;
+                int LA96_0 = input.LA(1);
+
+                if ( (LA96_0==31) ) {
+                    alt96=1;
+                }
+
+
+                switch (alt96) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19768:2: rule__PhysicalLink__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5_3__0_in_rule__PhysicalLink__Group_5__3__Impl39223);
+            	    rule__PhysicalLink__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop96;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalLinkAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19778:1: rule__PhysicalLink__Group_5__4 : rule__PhysicalLink__Group_5__4__Impl ;
+    public final void rule__PhysicalLink__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19782:1: ( rule__PhysicalLink__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19783:2: rule__PhysicalLink__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5__4__Impl_in_rule__PhysicalLink__Group_5__439254);
+            rule__PhysicalLink__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__4"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19789:1: rule__PhysicalLink__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__PhysicalLink__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19793:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19794:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19794:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19795:1: '}'
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__PhysicalLink__Group_5__4__Impl39282); 
+             after(grammarAccess.getPhysicalLinkAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19818:1: rule__PhysicalLink__Group_5_3__0 : rule__PhysicalLink__Group_5_3__0__Impl rule__PhysicalLink__Group_5_3__1 ;
+    public final void rule__PhysicalLink__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19822:1: ( rule__PhysicalLink__Group_5_3__0__Impl rule__PhysicalLink__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19823:2: rule__PhysicalLink__Group_5_3__0__Impl rule__PhysicalLink__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5_3__0__Impl_in_rule__PhysicalLink__Group_5_3__039323);
+            rule__PhysicalLink__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5_3__1_in_rule__PhysicalLink__Group_5_3__039326);
+            rule__PhysicalLink__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5_3__0"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19830:1: rule__PhysicalLink__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalLink__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19834:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19835:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19835:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19836:1: ','
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalLink__Group_5_3__0__Impl39354); 
+             after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19849:1: rule__PhysicalLink__Group_5_3__1 : rule__PhysicalLink__Group_5_3__1__Impl ;
+    public final void rule__PhysicalLink__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19853:1: ( rule__PhysicalLink__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19854:2: rule__PhysicalLink__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_5_3__1__Impl_in_rule__PhysicalLink__Group_5_3__139385);
+            rule__PhysicalLink__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5_3__1"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19860:1: rule__PhysicalLink__Group_5_3__1__Impl : ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__PhysicalLink__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19864:1: ( ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19865:1: ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19865:1: ( ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19866:1: ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19867:1: ( rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19867:2: rule__PhysicalLink__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalLink__Group_5_3__1__Impl39412);
+            rule__PhysicalLink__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_9__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19881:1: rule__PhysicalLink__Group_9__0 : rule__PhysicalLink__Group_9__0__Impl rule__PhysicalLink__Group_9__1 ;
+    public final void rule__PhysicalLink__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19885:1: ( rule__PhysicalLink__Group_9__0__Impl rule__PhysicalLink__Group_9__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19886:2: rule__PhysicalLink__Group_9__0__Impl rule__PhysicalLink__Group_9__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_9__0__Impl_in_rule__PhysicalLink__Group_9__039446);
+            rule__PhysicalLink__Group_9__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_9__1_in_rule__PhysicalLink__Group_9__039449);
+            rule__PhysicalLink__Group_9__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_9__0"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_9__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19893:1: rule__PhysicalLink__Group_9__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalLink__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19897:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19898:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19898:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19899:1: ','
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__PhysicalLink__Group_9__0__Impl39477); 
+             after(grammarAccess.getPhysicalLinkAccess().getCommaKeyword_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_9__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19912:1: rule__PhysicalLink__Group_9__1 : rule__PhysicalLink__Group_9__1__Impl ;
+    public final void rule__PhysicalLink__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19916:1: ( rule__PhysicalLink__Group_9__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19917:2: rule__PhysicalLink__Group_9__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__Group_9__1__Impl_in_rule__PhysicalLink__Group_9__139508);
+            rule__PhysicalLink__Group_9__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_9__1"
+
+
+    // $ANTLR start "rule__PhysicalLink__Group_9__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19923:1: rule__PhysicalLink__Group_9__1__Impl : ( ( rule__PhysicalLink__ConnectsAssignment_9_1 ) ) ;
+    public final void rule__PhysicalLink__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19927:1: ( ( ( rule__PhysicalLink__ConnectsAssignment_9_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19928:1: ( ( rule__PhysicalLink__ConnectsAssignment_9_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19928:1: ( ( rule__PhysicalLink__ConnectsAssignment_9_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19929:1: ( rule__PhysicalLink__ConnectsAssignment_9_1 )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19930:1: ( rule__PhysicalLink__ConnectsAssignment_9_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19930:2: rule__PhysicalLink__ConnectsAssignment_9_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__PhysicalLink__ConnectsAssignment_9_1_in_rule__PhysicalLink__Group_9__1__Impl39535);
+            rule__PhysicalLink__ConnectsAssignment_9_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsAssignment_9_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19944:1: rule__VirtualLink__Group__0 : rule__VirtualLink__Group__0__Impl rule__VirtualLink__Group__1 ;
+    public final void rule__VirtualLink__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19948:1: ( rule__VirtualLink__Group__0__Impl rule__VirtualLink__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19949:2: rule__VirtualLink__Group__0__Impl rule__VirtualLink__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__0__Impl_in_rule__VirtualLink__Group__039569);
+            rule__VirtualLink__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__1_in_rule__VirtualLink__Group__039572);
+            rule__VirtualLink__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__0"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19956:1: rule__VirtualLink__Group__0__Impl : ( 'VirtualLink' ) ;
+    public final void rule__VirtualLink__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19960:1: ( ( 'VirtualLink' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19961:1: ( 'VirtualLink' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19961:1: ( 'VirtualLink' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19962:1: 'VirtualLink'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); 
+            match(input,130,FollowSets001.FOLLOW_130_in_rule__VirtualLink__Group__0__Impl39600); 
+             after(grammarAccess.getVirtualLinkAccess().getVirtualLinkKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19975:1: rule__VirtualLink__Group__1 : rule__VirtualLink__Group__1__Impl rule__VirtualLink__Group__2 ;
+    public final void rule__VirtualLink__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19979:1: ( rule__VirtualLink__Group__1__Impl rule__VirtualLink__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19980:2: rule__VirtualLink__Group__1__Impl rule__VirtualLink__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__1__Impl_in_rule__VirtualLink__Group__139631);
+            rule__VirtualLink__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__2_in_rule__VirtualLink__Group__139634);
+            rule__VirtualLink__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__1"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19987:1: rule__VirtualLink__Group__1__Impl : ( ( rule__VirtualLink__IdAssignment_1 ) ) ;
+    public final void rule__VirtualLink__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19991:1: ( ( ( rule__VirtualLink__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19992:1: ( ( rule__VirtualLink__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19992:1: ( ( rule__VirtualLink__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19993:1: ( rule__VirtualLink__IdAssignment_1 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19994:1: ( rule__VirtualLink__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:19994:2: rule__VirtualLink__IdAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__IdAssignment_1_in_rule__VirtualLink__Group__1__Impl39661);
+            rule__VirtualLink__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20004:1: rule__VirtualLink__Group__2 : rule__VirtualLink__Group__2__Impl rule__VirtualLink__Group__3 ;
+    public final void rule__VirtualLink__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20008:1: ( rule__VirtualLink__Group__2__Impl rule__VirtualLink__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20009:2: rule__VirtualLink__Group__2__Impl rule__VirtualLink__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__2__Impl_in_rule__VirtualLink__Group__239691);
+            rule__VirtualLink__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__3_in_rule__VirtualLink__Group__239694);
+            rule__VirtualLink__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__2"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20016:1: rule__VirtualLink__Group__2__Impl : ( '{' ) ;
+    public final void rule__VirtualLink__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20020:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20021:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20021:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20022:1: '{'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__VirtualLink__Group__2__Impl39722); 
+             after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20035:1: rule__VirtualLink__Group__3 : rule__VirtualLink__Group__3__Impl rule__VirtualLink__Group__4 ;
+    public final void rule__VirtualLink__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20039:1: ( rule__VirtualLink__Group__3__Impl rule__VirtualLink__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20040:2: rule__VirtualLink__Group__3__Impl rule__VirtualLink__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__3__Impl_in_rule__VirtualLink__Group__339753);
+            rule__VirtualLink__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__4_in_rule__VirtualLink__Group__339756);
+            rule__VirtualLink__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__3"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20047:1: rule__VirtualLink__Group__3__Impl : ( 'name' ) ;
+    public final void rule__VirtualLink__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20051:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20052:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20052:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20053:1: 'name'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets001.FOLLOW_65_in_rule__VirtualLink__Group__3__Impl39784); 
+             after(grammarAccess.getVirtualLinkAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20066:1: rule__VirtualLink__Group__4 : rule__VirtualLink__Group__4__Impl rule__VirtualLink__Group__5 ;
+    public final void rule__VirtualLink__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20070:1: ( rule__VirtualLink__Group__4__Impl rule__VirtualLink__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20071:2: rule__VirtualLink__Group__4__Impl rule__VirtualLink__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__4__Impl_in_rule__VirtualLink__Group__439815);
+            rule__VirtualLink__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__5_in_rule__VirtualLink__Group__439818);
+            rule__VirtualLink__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__4"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20078:1: rule__VirtualLink__Group__4__Impl : ( ( rule__VirtualLink__NameAssignment_4 ) ) ;
+    public final void rule__VirtualLink__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20082:1: ( ( ( rule__VirtualLink__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20083:1: ( ( rule__VirtualLink__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20083:1: ( ( rule__VirtualLink__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20084:1: ( rule__VirtualLink__NameAssignment_4 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20085:1: ( rule__VirtualLink__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20085:2: rule__VirtualLink__NameAssignment_4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__NameAssignment_4_in_rule__VirtualLink__Group__4__Impl39845);
+            rule__VirtualLink__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20095:1: rule__VirtualLink__Group__5 : rule__VirtualLink__Group__5__Impl rule__VirtualLink__Group__6 ;
+    public final void rule__VirtualLink__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20099:1: ( rule__VirtualLink__Group__5__Impl rule__VirtualLink__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20100:2: rule__VirtualLink__Group__5__Impl rule__VirtualLink__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__5__Impl_in_rule__VirtualLink__Group__539875);
+            rule__VirtualLink__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__6_in_rule__VirtualLink__Group__539878);
+            rule__VirtualLink__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__5"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20107:1: rule__VirtualLink__Group__5__Impl : ( ( rule__VirtualLink__Group_5__0 )? ) ;
+    public final void rule__VirtualLink__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20111:1: ( ( ( rule__VirtualLink__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20112:1: ( ( rule__VirtualLink__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20112:1: ( ( rule__VirtualLink__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20113:1: ( rule__VirtualLink__Group_5__0 )?
+            {
+             before(grammarAccess.getVirtualLinkAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20114:1: ( rule__VirtualLink__Group_5__0 )?
+            int alt97=2;
+            int LA97_0 = input.LA(1);
+
+            if ( (LA97_0==67) ) {
+                alt97=1;
+            }
+            switch (alt97) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20114:2: rule__VirtualLink__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__0_in_rule__VirtualLink__Group__5__Impl39905);
+                    rule__VirtualLink__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20124:1: rule__VirtualLink__Group__6 : rule__VirtualLink__Group__6__Impl rule__VirtualLink__Group__7 ;
+    public final void rule__VirtualLink__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20128:1: ( rule__VirtualLink__Group__6__Impl rule__VirtualLink__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20129:2: rule__VirtualLink__Group__6__Impl rule__VirtualLink__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__6__Impl_in_rule__VirtualLink__Group__639936);
+            rule__VirtualLink__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__7_in_rule__VirtualLink__Group__639939);
+            rule__VirtualLink__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__6"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20136:1: rule__VirtualLink__Group__6__Impl : ( 'connects' ) ;
+    public final void rule__VirtualLink__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20140:1: ( ( 'connects' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20141:1: ( 'connects' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20141:1: ( 'connects' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20142:1: 'connects'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); 
+            match(input,129,FollowSets001.FOLLOW_129_in_rule__VirtualLink__Group__6__Impl39967); 
+             after(grammarAccess.getVirtualLinkAccess().getConnectsKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20155:1: rule__VirtualLink__Group__7 : rule__VirtualLink__Group__7__Impl rule__VirtualLink__Group__8 ;
+    public final void rule__VirtualLink__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20159:1: ( rule__VirtualLink__Group__7__Impl rule__VirtualLink__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20160:2: rule__VirtualLink__Group__7__Impl rule__VirtualLink__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__7__Impl_in_rule__VirtualLink__Group__739998);
+            rule__VirtualLink__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__8_in_rule__VirtualLink__Group__740001);
+            rule__VirtualLink__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__7"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20167:1: rule__VirtualLink__Group__7__Impl : ( '(' ) ;
+    public final void rule__VirtualLink__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20171:1: ( ( '(' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20172:1: ( '(' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20172:1: ( '(' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20173:1: '('
+            {
+             before(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); 
+            match(input,123,FollowSets001.FOLLOW_123_in_rule__VirtualLink__Group__7__Impl40029); 
+             after(grammarAccess.getVirtualLinkAccess().getLeftParenthesisKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__7__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20186:1: rule__VirtualLink__Group__8 : rule__VirtualLink__Group__8__Impl rule__VirtualLink__Group__9 ;
+    public final void rule__VirtualLink__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20190:1: ( rule__VirtualLink__Group__8__Impl rule__VirtualLink__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20191:2: rule__VirtualLink__Group__8__Impl rule__VirtualLink__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__8__Impl_in_rule__VirtualLink__Group__840060);
+            rule__VirtualLink__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__9_in_rule__VirtualLink__Group__840063);
+            rule__VirtualLink__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__8"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20198:1: rule__VirtualLink__Group__8__Impl : ( ( rule__VirtualLink__ConnectsAssignment_8 ) ) ;
+    public final void rule__VirtualLink__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20202:1: ( ( ( rule__VirtualLink__ConnectsAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20203:1: ( ( rule__VirtualLink__ConnectsAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20203:1: ( ( rule__VirtualLink__ConnectsAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20204:1: ( rule__VirtualLink__ConnectsAssignment_8 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20205:1: ( rule__VirtualLink__ConnectsAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20205:2: rule__VirtualLink__ConnectsAssignment_8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__ConnectsAssignment_8_in_rule__VirtualLink__Group__8__Impl40090);
+            rule__VirtualLink__ConnectsAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__8__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20215:1: rule__VirtualLink__Group__9 : rule__VirtualLink__Group__9__Impl rule__VirtualLink__Group__10 ;
+    public final void rule__VirtualLink__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20219:1: ( rule__VirtualLink__Group__9__Impl rule__VirtualLink__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20220:2: rule__VirtualLink__Group__9__Impl rule__VirtualLink__Group__10
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__9__Impl_in_rule__VirtualLink__Group__940120);
+            rule__VirtualLink__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__10_in_rule__VirtualLink__Group__940123);
+            rule__VirtualLink__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__9"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20227:1: rule__VirtualLink__Group__9__Impl : ( ( rule__VirtualLink__Group_9__0 )* ) ;
+    public final void rule__VirtualLink__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20231:1: ( ( ( rule__VirtualLink__Group_9__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20232:1: ( ( rule__VirtualLink__Group_9__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20232:1: ( ( rule__VirtualLink__Group_9__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20233:1: ( rule__VirtualLink__Group_9__0 )*
+            {
+             before(grammarAccess.getVirtualLinkAccess().getGroup_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20234:1: ( rule__VirtualLink__Group_9__0 )*
+            loop98:
+            do {
+                int alt98=2;
+                int LA98_0 = input.LA(1);
+
+                if ( (LA98_0==31) ) {
+                    alt98=1;
+                }
+
+
+                switch (alt98) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20234:2: rule__VirtualLink__Group_9__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_9__0_in_rule__VirtualLink__Group__9__Impl40150);
+            	    rule__VirtualLink__Group_9__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop98;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualLinkAccess().getGroup_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__9__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20244:1: rule__VirtualLink__Group__10 : rule__VirtualLink__Group__10__Impl rule__VirtualLink__Group__11 ;
+    public final void rule__VirtualLink__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20248:1: ( rule__VirtualLink__Group__10__Impl rule__VirtualLink__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20249:2: rule__VirtualLink__Group__10__Impl rule__VirtualLink__Group__11
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__10__Impl_in_rule__VirtualLink__Group__1040181);
+            rule__VirtualLink__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__11_in_rule__VirtualLink__Group__1040184);
+            rule__VirtualLink__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__10"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20256:1: rule__VirtualLink__Group__10__Impl : ( ')' ) ;
+    public final void rule__VirtualLink__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20260:1: ( ( ')' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20261:1: ( ')' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20261:1: ( ')' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20262:1: ')'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); 
+            match(input,124,FollowSets001.FOLLOW_124_in_rule__VirtualLink__Group__10__Impl40212); 
+             after(grammarAccess.getVirtualLinkAccess().getRightParenthesisKeyword_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__10__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20275:1: rule__VirtualLink__Group__11 : rule__VirtualLink__Group__11__Impl rule__VirtualLink__Group__12 ;
+    public final void rule__VirtualLink__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20279:1: ( rule__VirtualLink__Group__11__Impl rule__VirtualLink__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20280:2: rule__VirtualLink__Group__11__Impl rule__VirtualLink__Group__12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__11__Impl_in_rule__VirtualLink__Group__1140243);
+            rule__VirtualLink__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__12_in_rule__VirtualLink__Group__1140246);
+            rule__VirtualLink__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__11"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20287:1: rule__VirtualLink__Group__11__Impl : ( 'performance' ) ;
+    public final void rule__VirtualLink__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20291:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20292:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20292:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20293:1: 'performance'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); 
+            match(input,122,FollowSets001.FOLLOW_122_in_rule__VirtualLink__Group__11__Impl40274); 
+             after(grammarAccess.getVirtualLinkAccess().getPerformanceKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__11__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20306:1: rule__VirtualLink__Group__12 : rule__VirtualLink__Group__12__Impl rule__VirtualLink__Group__13 ;
+    public final void rule__VirtualLink__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20310:1: ( rule__VirtualLink__Group__12__Impl rule__VirtualLink__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20311:2: rule__VirtualLink__Group__12__Impl rule__VirtualLink__Group__13
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__12__Impl_in_rule__VirtualLink__Group__1240305);
+            rule__VirtualLink__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__13_in_rule__VirtualLink__Group__1240308);
+            rule__VirtualLink__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__12"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20318:1: rule__VirtualLink__Group__12__Impl : ( ( rule__VirtualLink__PerformanceAssignment_12 ) ) ;
+    public final void rule__VirtualLink__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20322:1: ( ( ( rule__VirtualLink__PerformanceAssignment_12 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20323:1: ( ( rule__VirtualLink__PerformanceAssignment_12 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20323:1: ( ( rule__VirtualLink__PerformanceAssignment_12 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20324:1: ( rule__VirtualLink__PerformanceAssignment_12 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20325:1: ( rule__VirtualLink__PerformanceAssignment_12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20325:2: rule__VirtualLink__PerformanceAssignment_12
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__PerformanceAssignment_12_in_rule__VirtualLink__Group__12__Impl40335);
+            rule__VirtualLink__PerformanceAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getPerformanceAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__12__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20335:1: rule__VirtualLink__Group__13 : rule__VirtualLink__Group__13__Impl ;
+    public final void rule__VirtualLink__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20339:1: ( rule__VirtualLink__Group__13__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20340:2: rule__VirtualLink__Group__13__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group__13__Impl_in_rule__VirtualLink__Group__1340365);
+            rule__VirtualLink__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__13"
+
+
+    // $ANTLR start "rule__VirtualLink__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20346:1: rule__VirtualLink__Group__13__Impl : ( '}' ) ;
+    public final void rule__VirtualLink__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20350:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20351:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20351:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20352:1: '}'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__VirtualLink__Group__13__Impl40393); 
+             after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group__13__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20393:1: rule__VirtualLink__Group_5__0 : rule__VirtualLink__Group_5__0__Impl rule__VirtualLink__Group_5__1 ;
+    public final void rule__VirtualLink__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20397:1: ( rule__VirtualLink__Group_5__0__Impl rule__VirtualLink__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20398:2: rule__VirtualLink__Group_5__0__Impl rule__VirtualLink__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__0__Impl_in_rule__VirtualLink__Group_5__040452);
+            rule__VirtualLink__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__1_in_rule__VirtualLink__Group_5__040455);
+            rule__VirtualLink__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__0"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20405:1: rule__VirtualLink__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__VirtualLink__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20409:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20410:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20410:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20411:1: 'alternativeNames'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__VirtualLink__Group_5__0__Impl40483); 
+             after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20424:1: rule__VirtualLink__Group_5__1 : rule__VirtualLink__Group_5__1__Impl rule__VirtualLink__Group_5__2 ;
+    public final void rule__VirtualLink__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20428:1: ( rule__VirtualLink__Group_5__1__Impl rule__VirtualLink__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20429:2: rule__VirtualLink__Group_5__1__Impl rule__VirtualLink__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__1__Impl_in_rule__VirtualLink__Group_5__140514);
+            rule__VirtualLink__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__2_in_rule__VirtualLink__Group_5__140517);
+            rule__VirtualLink__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__1"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20436:1: rule__VirtualLink__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__VirtualLink__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20440:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20441:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20441:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20442:1: '{'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__VirtualLink__Group_5__1__Impl40545); 
+             after(grammarAccess.getVirtualLinkAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20455:1: rule__VirtualLink__Group_5__2 : rule__VirtualLink__Group_5__2__Impl rule__VirtualLink__Group_5__3 ;
+    public final void rule__VirtualLink__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20459:1: ( rule__VirtualLink__Group_5__2__Impl rule__VirtualLink__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20460:2: rule__VirtualLink__Group_5__2__Impl rule__VirtualLink__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__2__Impl_in_rule__VirtualLink__Group_5__240576);
+            rule__VirtualLink__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__3_in_rule__VirtualLink__Group_5__240579);
+            rule__VirtualLink__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__2"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20467:1: rule__VirtualLink__Group_5__2__Impl : ( ( rule__VirtualLink__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__VirtualLink__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20471:1: ( ( ( rule__VirtualLink__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20472:1: ( ( rule__VirtualLink__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20472:1: ( ( rule__VirtualLink__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20473:1: ( rule__VirtualLink__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20474:1: ( rule__VirtualLink__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20474:2: rule__VirtualLink__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__AlternativeNamesAssignment_5_2_in_rule__VirtualLink__Group_5__2__Impl40606);
+            rule__VirtualLink__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20484:1: rule__VirtualLink__Group_5__3 : rule__VirtualLink__Group_5__3__Impl rule__VirtualLink__Group_5__4 ;
+    public final void rule__VirtualLink__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20488:1: ( rule__VirtualLink__Group_5__3__Impl rule__VirtualLink__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20489:2: rule__VirtualLink__Group_5__3__Impl rule__VirtualLink__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__3__Impl_in_rule__VirtualLink__Group_5__340636);
+            rule__VirtualLink__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__4_in_rule__VirtualLink__Group_5__340639);
+            rule__VirtualLink__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__3"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20496:1: rule__VirtualLink__Group_5__3__Impl : ( ( rule__VirtualLink__Group_5_3__0 )* ) ;
+    public final void rule__VirtualLink__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20500:1: ( ( ( rule__VirtualLink__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20501:1: ( ( rule__VirtualLink__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20501:1: ( ( rule__VirtualLink__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20502:1: ( rule__VirtualLink__Group_5_3__0 )*
+            {
+             before(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20503:1: ( rule__VirtualLink__Group_5_3__0 )*
+            loop99:
+            do {
+                int alt99=2;
+                int LA99_0 = input.LA(1);
+
+                if ( (LA99_0==31) ) {
+                    alt99=1;
+                }
+
+
+                switch (alt99) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20503:2: rule__VirtualLink__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5_3__0_in_rule__VirtualLink__Group_5__3__Impl40666);
+            	    rule__VirtualLink__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop99;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualLinkAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20513:1: rule__VirtualLink__Group_5__4 : rule__VirtualLink__Group_5__4__Impl ;
+    public final void rule__VirtualLink__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20517:1: ( rule__VirtualLink__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20518:2: rule__VirtualLink__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5__4__Impl_in_rule__VirtualLink__Group_5__440697);
+            rule__VirtualLink__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__4"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20524:1: rule__VirtualLink__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__VirtualLink__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20528:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20529:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20529:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20530:1: '}'
+            {
+             before(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__VirtualLink__Group_5__4__Impl40725); 
+             after(grammarAccess.getVirtualLinkAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20553:1: rule__VirtualLink__Group_5_3__0 : rule__VirtualLink__Group_5_3__0__Impl rule__VirtualLink__Group_5_3__1 ;
+    public final void rule__VirtualLink__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20557:1: ( rule__VirtualLink__Group_5_3__0__Impl rule__VirtualLink__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20558:2: rule__VirtualLink__Group_5_3__0__Impl rule__VirtualLink__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5_3__0__Impl_in_rule__VirtualLink__Group_5_3__040766);
+            rule__VirtualLink__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5_3__1_in_rule__VirtualLink__Group_5_3__040769);
+            rule__VirtualLink__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5_3__0"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20565:1: rule__VirtualLink__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualLink__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20569:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20570:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20570:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20571:1: ','
+            {
+             before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__VirtualLink__Group_5_3__0__Impl40797); 
+             after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20584:1: rule__VirtualLink__Group_5_3__1 : rule__VirtualLink__Group_5_3__1__Impl ;
+    public final void rule__VirtualLink__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20588:1: ( rule__VirtualLink__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20589:2: rule__VirtualLink__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_5_3__1__Impl_in_rule__VirtualLink__Group_5_3__140828);
+            rule__VirtualLink__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5_3__1"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20595:1: rule__VirtualLink__Group_5_3__1__Impl : ( ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__VirtualLink__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20599:1: ( ( ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20600:1: ( ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20600:1: ( ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20601:1: ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20602:1: ( rule__VirtualLink__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20602:2: rule__VirtualLink__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__AlternativeNamesAssignment_5_3_1_in_rule__VirtualLink__Group_5_3__1__Impl40855);
+            rule__VirtualLink__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_9__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20616:1: rule__VirtualLink__Group_9__0 : rule__VirtualLink__Group_9__0__Impl rule__VirtualLink__Group_9__1 ;
+    public final void rule__VirtualLink__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20620:1: ( rule__VirtualLink__Group_9__0__Impl rule__VirtualLink__Group_9__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20621:2: rule__VirtualLink__Group_9__0__Impl rule__VirtualLink__Group_9__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_9__0__Impl_in_rule__VirtualLink__Group_9__040889);
+            rule__VirtualLink__Group_9__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_9__1_in_rule__VirtualLink__Group_9__040892);
+            rule__VirtualLink__Group_9__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_9__0"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_9__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20628:1: rule__VirtualLink__Group_9__0__Impl : ( ',' ) ;
+    public final void rule__VirtualLink__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20632:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20633:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20633:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20634:1: ','
+            {
+             before(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__VirtualLink__Group_9__0__Impl40920); 
+             after(grammarAccess.getVirtualLinkAccess().getCommaKeyword_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_9__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20647:1: rule__VirtualLink__Group_9__1 : rule__VirtualLink__Group_9__1__Impl ;
+    public final void rule__VirtualLink__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20651:1: ( rule__VirtualLink__Group_9__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20652:2: rule__VirtualLink__Group_9__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__Group_9__1__Impl_in_rule__VirtualLink__Group_9__140951);
+            rule__VirtualLink__Group_9__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_9__1"
+
+
+    // $ANTLR start "rule__VirtualLink__Group_9__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20658:1: rule__VirtualLink__Group_9__1__Impl : ( ( rule__VirtualLink__ConnectsAssignment_9_1 ) ) ;
+    public final void rule__VirtualLink__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20662:1: ( ( ( rule__VirtualLink__ConnectsAssignment_9_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20663:1: ( ( rule__VirtualLink__ConnectsAssignment_9_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20663:1: ( ( rule__VirtualLink__ConnectsAssignment_9_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20664:1: ( rule__VirtualLink__ConnectsAssignment_9_1 )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20665:1: ( rule__VirtualLink__ConnectsAssignment_9_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20665:2: rule__VirtualLink__ConnectsAssignment_9_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__VirtualLink__ConnectsAssignment_9_1_in_rule__VirtualLink__Group_9__1__Impl40978);
+            rule__VirtualLink__ConnectsAssignment_9_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsAssignment_9_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20679:1: rule__ProtocolsRepository__Group__0 : rule__ProtocolsRepository__Group__0__Impl rule__ProtocolsRepository__Group__1 ;
+    public final void rule__ProtocolsRepository__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20683:1: ( rule__ProtocolsRepository__Group__0__Impl rule__ProtocolsRepository__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20684:2: rule__ProtocolsRepository__Group__0__Impl rule__ProtocolsRepository__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__0__Impl_in_rule__ProtocolsRepository__Group__041012);
+            rule__ProtocolsRepository__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__1_in_rule__ProtocolsRepository__Group__041015);
+            rule__ProtocolsRepository__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__0"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20691:1: rule__ProtocolsRepository__Group__0__Impl : ( 'ProtocolsRepository' ) ;
+    public final void rule__ProtocolsRepository__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20695:1: ( ( 'ProtocolsRepository' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20696:1: ( 'ProtocolsRepository' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20696:1: ( 'ProtocolsRepository' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20697:1: 'ProtocolsRepository'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); 
+            match(input,131,FollowSets001.FOLLOW_131_in_rule__ProtocolsRepository__Group__0__Impl41043); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsRepositoryKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20710:1: rule__ProtocolsRepository__Group__1 : rule__ProtocolsRepository__Group__1__Impl rule__ProtocolsRepository__Group__2 ;
+    public final void rule__ProtocolsRepository__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20714:1: ( rule__ProtocolsRepository__Group__1__Impl rule__ProtocolsRepository__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20715:2: rule__ProtocolsRepository__Group__1__Impl rule__ProtocolsRepository__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__1__Impl_in_rule__ProtocolsRepository__Group__141074);
+            rule__ProtocolsRepository__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__2_in_rule__ProtocolsRepository__Group__141077);
+            rule__ProtocolsRepository__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__1"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20722:1: rule__ProtocolsRepository__Group__1__Impl : ( '{' ) ;
+    public final void rule__ProtocolsRepository__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20726:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20727:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20727:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20728:1: '{'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolsRepository__Group__1__Impl41105); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20741:1: rule__ProtocolsRepository__Group__2 : rule__ProtocolsRepository__Group__2__Impl rule__ProtocolsRepository__Group__3 ;
+    public final void rule__ProtocolsRepository__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20745:1: ( rule__ProtocolsRepository__Group__2__Impl rule__ProtocolsRepository__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20746:2: rule__ProtocolsRepository__Group__2__Impl rule__ProtocolsRepository__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__2__Impl_in_rule__ProtocolsRepository__Group__241136);
+            rule__ProtocolsRepository__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__3_in_rule__ProtocolsRepository__Group__241139);
+            rule__ProtocolsRepository__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__2"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20753:1: rule__ProtocolsRepository__Group__2__Impl : ( ( rule__ProtocolsRepository__Group_2__0 )? ) ;
+    public final void rule__ProtocolsRepository__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20757:1: ( ( ( rule__ProtocolsRepository__Group_2__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20758:1: ( ( rule__ProtocolsRepository__Group_2__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20758:1: ( ( rule__ProtocolsRepository__Group_2__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20759:1: ( rule__ProtocolsRepository__Group_2__0 )?
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20760:1: ( rule__ProtocolsRepository__Group_2__0 )?
+            int alt100=2;
+            int LA100_0 = input.LA(1);
+
+            if ( (LA100_0==133) ) {
+                alt100=1;
+            }
+            switch (alt100) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20760:2: rule__ProtocolsRepository__Group_2__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__0_in_rule__ProtocolsRepository__Group__2__Impl41166);
+                    rule__ProtocolsRepository__Group_2__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20770:1: rule__ProtocolsRepository__Group__3 : rule__ProtocolsRepository__Group__3__Impl rule__ProtocolsRepository__Group__4 ;
+    public final void rule__ProtocolsRepository__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20774:1: ( rule__ProtocolsRepository__Group__3__Impl rule__ProtocolsRepository__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20775:2: rule__ProtocolsRepository__Group__3__Impl rule__ProtocolsRepository__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__3__Impl_in_rule__ProtocolsRepository__Group__341197);
+            rule__ProtocolsRepository__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__4_in_rule__ProtocolsRepository__Group__341200);
+            rule__ProtocolsRepository__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__3"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20782:1: rule__ProtocolsRepository__Group__3__Impl : ( 'protocols' ) ;
+    public final void rule__ProtocolsRepository__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20786:1: ( ( 'protocols' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20787:1: ( 'protocols' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20787:1: ( 'protocols' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20788:1: 'protocols'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); 
+            match(input,132,FollowSets001.FOLLOW_132_in_rule__ProtocolsRepository__Group__3__Impl41228); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20801:1: rule__ProtocolsRepository__Group__4 : rule__ProtocolsRepository__Group__4__Impl rule__ProtocolsRepository__Group__5 ;
+    public final void rule__ProtocolsRepository__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20805:1: ( rule__ProtocolsRepository__Group__4__Impl rule__ProtocolsRepository__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20806:2: rule__ProtocolsRepository__Group__4__Impl rule__ProtocolsRepository__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__4__Impl_in_rule__ProtocolsRepository__Group__441259);
+            rule__ProtocolsRepository__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__5_in_rule__ProtocolsRepository__Group__441262);
+            rule__ProtocolsRepository__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__4"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20813:1: rule__ProtocolsRepository__Group__4__Impl : ( '{' ) ;
+    public final void rule__ProtocolsRepository__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20817:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20818:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20818:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20819:1: '{'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolsRepository__Group__4__Impl41290); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20832:1: rule__ProtocolsRepository__Group__5 : rule__ProtocolsRepository__Group__5__Impl rule__ProtocolsRepository__Group__6 ;
+    public final void rule__ProtocolsRepository__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20836:1: ( rule__ProtocolsRepository__Group__5__Impl rule__ProtocolsRepository__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20837:2: rule__ProtocolsRepository__Group__5__Impl rule__ProtocolsRepository__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__5__Impl_in_rule__ProtocolsRepository__Group__541321);
+            rule__ProtocolsRepository__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__6_in_rule__ProtocolsRepository__Group__541324);
+            rule__ProtocolsRepository__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__5"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20844:1: rule__ProtocolsRepository__Group__5__Impl : ( ( rule__ProtocolsRepository__ProtocolsAssignment_5 ) ) ;
+    public final void rule__ProtocolsRepository__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20848:1: ( ( ( rule__ProtocolsRepository__ProtocolsAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20849:1: ( ( rule__ProtocolsRepository__ProtocolsAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20849:1: ( ( rule__ProtocolsRepository__ProtocolsAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20850:1: ( rule__ProtocolsRepository__ProtocolsAssignment_5 )
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20851:1: ( rule__ProtocolsRepository__ProtocolsAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20851:2: rule__ProtocolsRepository__ProtocolsAssignment_5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__ProtocolsAssignment_5_in_rule__ProtocolsRepository__Group__5__Impl41351);
+            rule__ProtocolsRepository__ProtocolsAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20861:1: rule__ProtocolsRepository__Group__6 : rule__ProtocolsRepository__Group__6__Impl rule__ProtocolsRepository__Group__7 ;
+    public final void rule__ProtocolsRepository__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20865:1: ( rule__ProtocolsRepository__Group__6__Impl rule__ProtocolsRepository__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20866:2: rule__ProtocolsRepository__Group__6__Impl rule__ProtocolsRepository__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__6__Impl_in_rule__ProtocolsRepository__Group__641381);
+            rule__ProtocolsRepository__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__7_in_rule__ProtocolsRepository__Group__641384);
+            rule__ProtocolsRepository__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__6"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20873:1: rule__ProtocolsRepository__Group__6__Impl : ( ( rule__ProtocolsRepository__Group_6__0 )* ) ;
+    public final void rule__ProtocolsRepository__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20877:1: ( ( ( rule__ProtocolsRepository__Group_6__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20878:1: ( ( rule__ProtocolsRepository__Group_6__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20878:1: ( ( rule__ProtocolsRepository__Group_6__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20879:1: ( rule__ProtocolsRepository__Group_6__0 )*
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20880:1: ( rule__ProtocolsRepository__Group_6__0 )*
+            loop101:
+            do {
+                int alt101=2;
+                int LA101_0 = input.LA(1);
+
+                if ( (LA101_0==31) ) {
+                    alt101=1;
+                }
+
+
+                switch (alt101) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20880:2: rule__ProtocolsRepository__Group_6__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_6__0_in_rule__ProtocolsRepository__Group__6__Impl41411);
+            	    rule__ProtocolsRepository__Group_6__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop101;
+                }
+            } while (true);
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20890:1: rule__ProtocolsRepository__Group__7 : rule__ProtocolsRepository__Group__7__Impl rule__ProtocolsRepository__Group__8 ;
+    public final void rule__ProtocolsRepository__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20894:1: ( rule__ProtocolsRepository__Group__7__Impl rule__ProtocolsRepository__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20895:2: rule__ProtocolsRepository__Group__7__Impl rule__ProtocolsRepository__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__7__Impl_in_rule__ProtocolsRepository__Group__741442);
+            rule__ProtocolsRepository__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__8_in_rule__ProtocolsRepository__Group__741445);
+            rule__ProtocolsRepository__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__7"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20902:1: rule__ProtocolsRepository__Group__7__Impl : ( '}' ) ;
+    public final void rule__ProtocolsRepository__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20906:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20907:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20907:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20908:1: '}'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ProtocolsRepository__Group__7__Impl41473); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20921:1: rule__ProtocolsRepository__Group__8 : rule__ProtocolsRepository__Group__8__Impl ;
+    public final void rule__ProtocolsRepository__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20925:1: ( rule__ProtocolsRepository__Group__8__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20926:2: rule__ProtocolsRepository__Group__8__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group__8__Impl_in_rule__ProtocolsRepository__Group__841504);
+            rule__ProtocolsRepository__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__8"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20932:1: rule__ProtocolsRepository__Group__8__Impl : ( '}' ) ;
+    public final void rule__ProtocolsRepository__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20936:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20937:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20937:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20938:1: '}'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ProtocolsRepository__Group__8__Impl41532); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20969:1: rule__ProtocolsRepository__Group_2__0 : rule__ProtocolsRepository__Group_2__0__Impl rule__ProtocolsRepository__Group_2__1 ;
+    public final void rule__ProtocolsRepository__Group_2__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20973:1: ( rule__ProtocolsRepository__Group_2__0__Impl rule__ProtocolsRepository__Group_2__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20974:2: rule__ProtocolsRepository__Group_2__0__Impl rule__ProtocolsRepository__Group_2__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__0__Impl_in_rule__ProtocolsRepository__Group_2__041581);
+            rule__ProtocolsRepository__Group_2__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__1_in_rule__ProtocolsRepository__Group_2__041584);
+            rule__ProtocolsRepository__Group_2__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__0"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20981:1: rule__ProtocolsRepository__Group_2__0__Impl : ( 'stacks' ) ;
+    public final void rule__ProtocolsRepository__Group_2__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20985:1: ( ( 'stacks' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20986:1: ( 'stacks' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20986:1: ( 'stacks' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:20987:1: 'stacks'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); 
+            match(input,133,FollowSets001.FOLLOW_133_in_rule__ProtocolsRepository__Group_2__0__Impl41612); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getStacksKeyword_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21000:1: rule__ProtocolsRepository__Group_2__1 : rule__ProtocolsRepository__Group_2__1__Impl rule__ProtocolsRepository__Group_2__2 ;
+    public final void rule__ProtocolsRepository__Group_2__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21004:1: ( rule__ProtocolsRepository__Group_2__1__Impl rule__ProtocolsRepository__Group_2__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21005:2: rule__ProtocolsRepository__Group_2__1__Impl rule__ProtocolsRepository__Group_2__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__1__Impl_in_rule__ProtocolsRepository__Group_2__141643);
+            rule__ProtocolsRepository__Group_2__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__2_in_rule__ProtocolsRepository__Group_2__141646);
+            rule__ProtocolsRepository__Group_2__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__1"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21012:1: rule__ProtocolsRepository__Group_2__1__Impl : ( '{' ) ;
+    public final void rule__ProtocolsRepository__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21016:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21017:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21017:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21018:1: '{'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolsRepository__Group_2__1__Impl41674); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getLeftCurlyBracketKeyword_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21031:1: rule__ProtocolsRepository__Group_2__2 : rule__ProtocolsRepository__Group_2__2__Impl rule__ProtocolsRepository__Group_2__3 ;
+    public final void rule__ProtocolsRepository__Group_2__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21035:1: ( rule__ProtocolsRepository__Group_2__2__Impl rule__ProtocolsRepository__Group_2__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21036:2: rule__ProtocolsRepository__Group_2__2__Impl rule__ProtocolsRepository__Group_2__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__2__Impl_in_rule__ProtocolsRepository__Group_2__241705);
+            rule__ProtocolsRepository__Group_2__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__3_in_rule__ProtocolsRepository__Group_2__241708);
+            rule__ProtocolsRepository__Group_2__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__2"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21043:1: rule__ProtocolsRepository__Group_2__2__Impl : ( ( rule__ProtocolsRepository__StacksAssignment_2_2 ) ) ;
+    public final void rule__ProtocolsRepository__Group_2__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21047:1: ( ( ( rule__ProtocolsRepository__StacksAssignment_2_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21048:1: ( ( rule__ProtocolsRepository__StacksAssignment_2_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21048:1: ( ( rule__ProtocolsRepository__StacksAssignment_2_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21049:1: ( rule__ProtocolsRepository__StacksAssignment_2_2 )
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21050:1: ( rule__ProtocolsRepository__StacksAssignment_2_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21050:2: rule__ProtocolsRepository__StacksAssignment_2_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__StacksAssignment_2_2_in_rule__ProtocolsRepository__Group_2__2__Impl41735);
+            rule__ProtocolsRepository__StacksAssignment_2_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21060:1: rule__ProtocolsRepository__Group_2__3 : rule__ProtocolsRepository__Group_2__3__Impl rule__ProtocolsRepository__Group_2__4 ;
+    public final void rule__ProtocolsRepository__Group_2__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21064:1: ( rule__ProtocolsRepository__Group_2__3__Impl rule__ProtocolsRepository__Group_2__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21065:2: rule__ProtocolsRepository__Group_2__3__Impl rule__ProtocolsRepository__Group_2__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__3__Impl_in_rule__ProtocolsRepository__Group_2__341765);
+            rule__ProtocolsRepository__Group_2__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__4_in_rule__ProtocolsRepository__Group_2__341768);
+            rule__ProtocolsRepository__Group_2__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__3"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21072:1: rule__ProtocolsRepository__Group_2__3__Impl : ( ( rule__ProtocolsRepository__Group_2_3__0 )* ) ;
+    public final void rule__ProtocolsRepository__Group_2__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21076:1: ( ( ( rule__ProtocolsRepository__Group_2_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21077:1: ( ( rule__ProtocolsRepository__Group_2_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21077:1: ( ( rule__ProtocolsRepository__Group_2_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21078:1: ( rule__ProtocolsRepository__Group_2_3__0 )*
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21079:1: ( rule__ProtocolsRepository__Group_2_3__0 )*
+            loop102:
+            do {
+                int alt102=2;
+                int LA102_0 = input.LA(1);
+
+                if ( (LA102_0==31) ) {
+                    alt102=1;
+                }
+
+
+                switch (alt102) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21079:2: rule__ProtocolsRepository__Group_2_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2_3__0_in_rule__ProtocolsRepository__Group_2__3__Impl41795);
+            	    rule__ProtocolsRepository__Group_2_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop102;
+                }
+            } while (true);
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getGroup_2_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21089:1: rule__ProtocolsRepository__Group_2__4 : rule__ProtocolsRepository__Group_2__4__Impl ;
+    public final void rule__ProtocolsRepository__Group_2__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21093:1: ( rule__ProtocolsRepository__Group_2__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21094:2: rule__ProtocolsRepository__Group_2__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2__4__Impl_in_rule__ProtocolsRepository__Group_2__441826);
+            rule__ProtocolsRepository__Group_2__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__4"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21100:1: rule__ProtocolsRepository__Group_2__4__Impl : ( '}' ) ;
+    public final void rule__ProtocolsRepository__Group_2__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21104:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21105:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21105:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21106:1: '}'
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ProtocolsRepository__Group_2__4__Impl41854); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getRightCurlyBracketKeyword_2_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21129:1: rule__ProtocolsRepository__Group_2_3__0 : rule__ProtocolsRepository__Group_2_3__0__Impl rule__ProtocolsRepository__Group_2_3__1 ;
+    public final void rule__ProtocolsRepository__Group_2_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21133:1: ( rule__ProtocolsRepository__Group_2_3__0__Impl rule__ProtocolsRepository__Group_2_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21134:2: rule__ProtocolsRepository__Group_2_3__0__Impl rule__ProtocolsRepository__Group_2_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2_3__0__Impl_in_rule__ProtocolsRepository__Group_2_3__041895);
+            rule__ProtocolsRepository__Group_2_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2_3__1_in_rule__ProtocolsRepository__Group_2_3__041898);
+            rule__ProtocolsRepository__Group_2_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2_3__0"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21141:1: rule__ProtocolsRepository__Group_2_3__0__Impl : ( ',' ) ;
+    public final void rule__ProtocolsRepository__Group_2_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21145:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21146:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21146:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21147:1: ','
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__ProtocolsRepository__Group_2_3__0__Impl41926); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_2_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2_3__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21160:1: rule__ProtocolsRepository__Group_2_3__1 : rule__ProtocolsRepository__Group_2_3__1__Impl ;
+    public final void rule__ProtocolsRepository__Group_2_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21164:1: ( rule__ProtocolsRepository__Group_2_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21165:2: rule__ProtocolsRepository__Group_2_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_2_3__1__Impl_in_rule__ProtocolsRepository__Group_2_3__141957);
+            rule__ProtocolsRepository__Group_2_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2_3__1"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_2_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21171:1: rule__ProtocolsRepository__Group_2_3__1__Impl : ( ( rule__ProtocolsRepository__StacksAssignment_2_3_1 ) ) ;
+    public final void rule__ProtocolsRepository__Group_2_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21175:1: ( ( ( rule__ProtocolsRepository__StacksAssignment_2_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21176:1: ( ( rule__ProtocolsRepository__StacksAssignment_2_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21176:1: ( ( rule__ProtocolsRepository__StacksAssignment_2_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21177:1: ( rule__ProtocolsRepository__StacksAssignment_2_3_1 )
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21178:1: ( rule__ProtocolsRepository__StacksAssignment_2_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21178:2: rule__ProtocolsRepository__StacksAssignment_2_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__StacksAssignment_2_3_1_in_rule__ProtocolsRepository__Group_2_3__1__Impl41984);
+            rule__ProtocolsRepository__StacksAssignment_2_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getStacksAssignment_2_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_2_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21192:1: rule__ProtocolsRepository__Group_6__0 : rule__ProtocolsRepository__Group_6__0__Impl rule__ProtocolsRepository__Group_6__1 ;
+    public final void rule__ProtocolsRepository__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21196:1: ( rule__ProtocolsRepository__Group_6__0__Impl rule__ProtocolsRepository__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21197:2: rule__ProtocolsRepository__Group_6__0__Impl rule__ProtocolsRepository__Group_6__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_6__0__Impl_in_rule__ProtocolsRepository__Group_6__042018);
+            rule__ProtocolsRepository__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_6__1_in_rule__ProtocolsRepository__Group_6__042021);
+            rule__ProtocolsRepository__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_6__0"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21204:1: rule__ProtocolsRepository__Group_6__0__Impl : ( ',' ) ;
+    public final void rule__ProtocolsRepository__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21208:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21209:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21209:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21210:1: ','
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__ProtocolsRepository__Group_6__0__Impl42049); 
+             after(grammarAccess.getProtocolsRepositoryAccess().getCommaKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21223:1: rule__ProtocolsRepository__Group_6__1 : rule__ProtocolsRepository__Group_6__1__Impl ;
+    public final void rule__ProtocolsRepository__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21227:1: ( rule__ProtocolsRepository__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21228:2: rule__ProtocolsRepository__Group_6__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__Group_6__1__Impl_in_rule__ProtocolsRepository__Group_6__142080);
+            rule__ProtocolsRepository__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_6__1"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21234:1: rule__ProtocolsRepository__Group_6__1__Impl : ( ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 ) ) ;
+    public final void rule__ProtocolsRepository__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21238:1: ( ( ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21239:1: ( ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21239:1: ( ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21240:1: ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 )
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21241:1: ( rule__ProtocolsRepository__ProtocolsAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21241:2: rule__ProtocolsRepository__ProtocolsAssignment_6_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolsRepository__ProtocolsAssignment_6_1_in_rule__ProtocolsRepository__Group_6__1__Impl42107);
+            rule__ProtocolsRepository__ProtocolsAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21255:1: rule__RoutesRepository__Group__0 : rule__RoutesRepository__Group__0__Impl rule__RoutesRepository__Group__1 ;
+    public final void rule__RoutesRepository__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21259:1: ( rule__RoutesRepository__Group__0__Impl rule__RoutesRepository__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21260:2: rule__RoutesRepository__Group__0__Impl rule__RoutesRepository__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__0__Impl_in_rule__RoutesRepository__Group__042141);
+            rule__RoutesRepository__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__1_in_rule__RoutesRepository__Group__042144);
+            rule__RoutesRepository__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21267:1: rule__RoutesRepository__Group__0__Impl : ( () ) ;
+    public final void rule__RoutesRepository__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21271:1: ( ( () ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21272:1: ( () )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21272:1: ( () )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21273:1: ()
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21274:1: ()
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21276:1: 
+            {
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryAction_0()); 
+
+            }
+
+
+            }
+
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21286:1: rule__RoutesRepository__Group__1 : rule__RoutesRepository__Group__1__Impl rule__RoutesRepository__Group__2 ;
+    public final void rule__RoutesRepository__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21290:1: ( rule__RoutesRepository__Group__1__Impl rule__RoutesRepository__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21291:2: rule__RoutesRepository__Group__1__Impl rule__RoutesRepository__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__1__Impl_in_rule__RoutesRepository__Group__142202);
+            rule__RoutesRepository__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__2_in_rule__RoutesRepository__Group__142205);
+            rule__RoutesRepository__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21298:1: rule__RoutesRepository__Group__1__Impl : ( 'RoutesRepository' ) ;
+    public final void rule__RoutesRepository__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21302:1: ( ( 'RoutesRepository' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21303:1: ( 'RoutesRepository' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21303:1: ( 'RoutesRepository' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21304:1: 'RoutesRepository'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); 
+            match(input,134,FollowSets001.FOLLOW_134_in_rule__RoutesRepository__Group__1__Impl42233); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesRepositoryKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21317:1: rule__RoutesRepository__Group__2 : rule__RoutesRepository__Group__2__Impl rule__RoutesRepository__Group__3 ;
+    public final void rule__RoutesRepository__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21321:1: ( rule__RoutesRepository__Group__2__Impl rule__RoutesRepository__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21322:2: rule__RoutesRepository__Group__2__Impl rule__RoutesRepository__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__2__Impl_in_rule__RoutesRepository__Group__242264);
+            rule__RoutesRepository__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__3_in_rule__RoutesRepository__Group__242267);
+            rule__RoutesRepository__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__2"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21329:1: rule__RoutesRepository__Group__2__Impl : ( '{' ) ;
+    public final void rule__RoutesRepository__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21333:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21334:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21334:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21335:1: '{'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__RoutesRepository__Group__2__Impl42295); 
+             after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__2__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21348:1: rule__RoutesRepository__Group__3 : rule__RoutesRepository__Group__3__Impl rule__RoutesRepository__Group__4 ;
+    public final void rule__RoutesRepository__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21352:1: ( rule__RoutesRepository__Group__3__Impl rule__RoutesRepository__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21353:2: rule__RoutesRepository__Group__3__Impl rule__RoutesRepository__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__3__Impl_in_rule__RoutesRepository__Group__342326);
+            rule__RoutesRepository__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__4_in_rule__RoutesRepository__Group__342329);
+            rule__RoutesRepository__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__3"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21360:1: rule__RoutesRepository__Group__3__Impl : ( ( rule__RoutesRepository__Group_3__0 )? ) ;
+    public final void rule__RoutesRepository__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21364:1: ( ( ( rule__RoutesRepository__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21365:1: ( ( rule__RoutesRepository__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21365:1: ( ( rule__RoutesRepository__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21366:1: ( rule__RoutesRepository__Group_3__0 )?
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21367:1: ( rule__RoutesRepository__Group_3__0 )?
+            int alt103=2;
+            int LA103_0 = input.LA(1);
+
+            if ( (LA103_0==61) ) {
+                alt103=1;
+            }
+            switch (alt103) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21367:2: rule__RoutesRepository__Group_3__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__0_in_rule__RoutesRepository__Group__3__Impl42356);
+                    rule__RoutesRepository__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__3__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21377:1: rule__RoutesRepository__Group__4 : rule__RoutesRepository__Group__4__Impl rule__RoutesRepository__Group__5 ;
+    public final void rule__RoutesRepository__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21381:1: ( rule__RoutesRepository__Group__4__Impl rule__RoutesRepository__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21382:2: rule__RoutesRepository__Group__4__Impl rule__RoutesRepository__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__4__Impl_in_rule__RoutesRepository__Group__442387);
+            rule__RoutesRepository__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__5_in_rule__RoutesRepository__Group__442390);
+            rule__RoutesRepository__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__4"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21389:1: rule__RoutesRepository__Group__4__Impl : ( ( rule__RoutesRepository__Group_4__0 )? ) ;
+    public final void rule__RoutesRepository__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21393:1: ( ( ( rule__RoutesRepository__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21394:1: ( ( rule__RoutesRepository__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21394:1: ( ( rule__RoutesRepository__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21395:1: ( rule__RoutesRepository__Group_4__0 )?
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21396:1: ( rule__RoutesRepository__Group_4__0 )?
+            int alt104=2;
+            int LA104_0 = input.LA(1);
+
+            if ( (LA104_0==135) ) {
+                alt104=1;
+            }
+            switch (alt104) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21396:2: rule__RoutesRepository__Group_4__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__0_in_rule__RoutesRepository__Group__4__Impl42417);
+                    rule__RoutesRepository__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__4__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21406:1: rule__RoutesRepository__Group__5 : rule__RoutesRepository__Group__5__Impl rule__RoutesRepository__Group__6 ;
+    public final void rule__RoutesRepository__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21410:1: ( rule__RoutesRepository__Group__5__Impl rule__RoutesRepository__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21411:2: rule__RoutesRepository__Group__5__Impl rule__RoutesRepository__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__5__Impl_in_rule__RoutesRepository__Group__542448);
+            rule__RoutesRepository__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__6_in_rule__RoutesRepository__Group__542451);
+            rule__RoutesRepository__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__5"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21418:1: rule__RoutesRepository__Group__5__Impl : ( ( rule__RoutesRepository__Group_5__0 )? ) ;
+    public final void rule__RoutesRepository__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21422:1: ( ( ( rule__RoutesRepository__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21423:1: ( ( rule__RoutesRepository__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21423:1: ( ( rule__RoutesRepository__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21424:1: ( rule__RoutesRepository__Group_5__0 )?
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21425:1: ( rule__RoutesRepository__Group_5__0 )?
+            int alt105=2;
+            int LA105_0 = input.LA(1);
+
+            if ( (LA105_0==136) ) {
+                alt105=1;
+            }
+            switch (alt105) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21425:2: rule__RoutesRepository__Group_5__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__0_in_rule__RoutesRepository__Group__5__Impl42478);
+                    rule__RoutesRepository__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__5__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21435:1: rule__RoutesRepository__Group__6 : rule__RoutesRepository__Group__6__Impl ;
+    public final void rule__RoutesRepository__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21439:1: ( rule__RoutesRepository__Group__6__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21440:2: rule__RoutesRepository__Group__6__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group__6__Impl_in_rule__RoutesRepository__Group__642509);
+            rule__RoutesRepository__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__6"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21446:1: rule__RoutesRepository__Group__6__Impl : ( '}' ) ;
+    public final void rule__RoutesRepository__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21450:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21451:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21451:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21452:1: '}'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__RoutesRepository__Group__6__Impl42537); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group__6__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21479:1: rule__RoutesRepository__Group_3__0 : rule__RoutesRepository__Group_3__0__Impl rule__RoutesRepository__Group_3__1 ;
+    public final void rule__RoutesRepository__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21483:1: ( rule__RoutesRepository__Group_3__0__Impl rule__RoutesRepository__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21484:2: rule__RoutesRepository__Group_3__0__Impl rule__RoutesRepository__Group_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__0__Impl_in_rule__RoutesRepository__Group_3__042582);
+            rule__RoutesRepository__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__1_in_rule__RoutesRepository__Group_3__042585);
+            rule__RoutesRepository__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21491:1: rule__RoutesRepository__Group_3__0__Impl : ( 'routes' ) ;
+    public final void rule__RoutesRepository__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21495:1: ( ( 'routes' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21496:1: ( 'routes' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21496:1: ( 'routes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21497:1: 'routes'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); 
+            match(input,61,FollowSets001.FOLLOW_61_in_rule__RoutesRepository__Group_3__0__Impl42613); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21510:1: rule__RoutesRepository__Group_3__1 : rule__RoutesRepository__Group_3__1__Impl rule__RoutesRepository__Group_3__2 ;
+    public final void rule__RoutesRepository__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21514:1: ( rule__RoutesRepository__Group_3__1__Impl rule__RoutesRepository__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21515:2: rule__RoutesRepository__Group_3__1__Impl rule__RoutesRepository__Group_3__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__1__Impl_in_rule__RoutesRepository__Group_3__142644);
+            rule__RoutesRepository__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__2_in_rule__RoutesRepository__Group_3__142647);
+            rule__RoutesRepository__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21522:1: rule__RoutesRepository__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__RoutesRepository__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21526:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21527:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21527:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21528:1: '{'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__RoutesRepository__Group_3__1__Impl42675); 
+             after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21541:1: rule__RoutesRepository__Group_3__2 : rule__RoutesRepository__Group_3__2__Impl rule__RoutesRepository__Group_3__3 ;
+    public final void rule__RoutesRepository__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21545:1: ( rule__RoutesRepository__Group_3__2__Impl rule__RoutesRepository__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21546:2: rule__RoutesRepository__Group_3__2__Impl rule__RoutesRepository__Group_3__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__2__Impl_in_rule__RoutesRepository__Group_3__242706);
+            rule__RoutesRepository__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__3_in_rule__RoutesRepository__Group_3__242709);
+            rule__RoutesRepository__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__2"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21553:1: rule__RoutesRepository__Group_3__2__Impl : ( ( rule__RoutesRepository__RoutesAssignment_3_2 ) ) ;
+    public final void rule__RoutesRepository__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21557:1: ( ( ( rule__RoutesRepository__RoutesAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21558:1: ( ( rule__RoutesRepository__RoutesAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21558:1: ( ( rule__RoutesRepository__RoutesAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21559:1: ( rule__RoutesRepository__RoutesAssignment_3_2 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21560:1: ( rule__RoutesRepository__RoutesAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21560:2: rule__RoutesRepository__RoutesAssignment_3_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__RoutesAssignment_3_2_in_rule__RoutesRepository__Group_3__2__Impl42736);
+            rule__RoutesRepository__RoutesAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21570:1: rule__RoutesRepository__Group_3__3 : rule__RoutesRepository__Group_3__3__Impl rule__RoutesRepository__Group_3__4 ;
+    public final void rule__RoutesRepository__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21574:1: ( rule__RoutesRepository__Group_3__3__Impl rule__RoutesRepository__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21575:2: rule__RoutesRepository__Group_3__3__Impl rule__RoutesRepository__Group_3__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__3__Impl_in_rule__RoutesRepository__Group_3__342766);
+            rule__RoutesRepository__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__4_in_rule__RoutesRepository__Group_3__342769);
+            rule__RoutesRepository__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__3"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21582:1: rule__RoutesRepository__Group_3__3__Impl : ( ( rule__RoutesRepository__Group_3_3__0 )* ) ;
+    public final void rule__RoutesRepository__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21586:1: ( ( ( rule__RoutesRepository__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21587:1: ( ( rule__RoutesRepository__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21587:1: ( ( rule__RoutesRepository__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21588:1: ( rule__RoutesRepository__Group_3_3__0 )*
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21589:1: ( rule__RoutesRepository__Group_3_3__0 )*
+            loop106:
+            do {
+                int alt106=2;
+                int LA106_0 = input.LA(1);
+
+                if ( (LA106_0==31) ) {
+                    alt106=1;
+                }
+
+
+                switch (alt106) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21589:2: rule__RoutesRepository__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3_3__0_in_rule__RoutesRepository__Group_3__3__Impl42796);
+            	    rule__RoutesRepository__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop106;
+                }
+            } while (true);
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21599:1: rule__RoutesRepository__Group_3__4 : rule__RoutesRepository__Group_3__4__Impl ;
+    public final void rule__RoutesRepository__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21603:1: ( rule__RoutesRepository__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21604:2: rule__RoutesRepository__Group_3__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3__4__Impl_in_rule__RoutesRepository__Group_3__442827);
+            rule__RoutesRepository__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__4"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21610:1: rule__RoutesRepository__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__RoutesRepository__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21614:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21615:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21615:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21616:1: '}'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__RoutesRepository__Group_3__4__Impl42855); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21639:1: rule__RoutesRepository__Group_3_3__0 : rule__RoutesRepository__Group_3_3__0__Impl rule__RoutesRepository__Group_3_3__1 ;
+    public final void rule__RoutesRepository__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21643:1: ( rule__RoutesRepository__Group_3_3__0__Impl rule__RoutesRepository__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21644:2: rule__RoutesRepository__Group_3_3__0__Impl rule__RoutesRepository__Group_3_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3_3__0__Impl_in_rule__RoutesRepository__Group_3_3__042896);
+            rule__RoutesRepository__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3_3__1_in_rule__RoutesRepository__Group_3_3__042899);
+            rule__RoutesRepository__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3_3__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21651:1: rule__RoutesRepository__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__RoutesRepository__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21655:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21656:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21656:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21657:1: ','
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__RoutesRepository__Group_3_3__0__Impl42927); 
+             after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21670:1: rule__RoutesRepository__Group_3_3__1 : rule__RoutesRepository__Group_3_3__1__Impl ;
+    public final void rule__RoutesRepository__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21674:1: ( rule__RoutesRepository__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21675:2: rule__RoutesRepository__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_3_3__1__Impl_in_rule__RoutesRepository__Group_3_3__142958);
+            rule__RoutesRepository__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3_3__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21681:1: rule__RoutesRepository__Group_3_3__1__Impl : ( ( rule__RoutesRepository__RoutesAssignment_3_3_1 ) ) ;
+    public final void rule__RoutesRepository__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21685:1: ( ( ( rule__RoutesRepository__RoutesAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21686:1: ( ( rule__RoutesRepository__RoutesAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21686:1: ( ( rule__RoutesRepository__RoutesAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21687:1: ( rule__RoutesRepository__RoutesAssignment_3_3_1 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21688:1: ( rule__RoutesRepository__RoutesAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21688:2: rule__RoutesRepository__RoutesAssignment_3_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__RoutesAssignment_3_3_1_in_rule__RoutesRepository__Group_3_3__1__Impl42985);
+            rule__RoutesRepository__RoutesAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21702:1: rule__RoutesRepository__Group_4__0 : rule__RoutesRepository__Group_4__0__Impl rule__RoutesRepository__Group_4__1 ;
+    public final void rule__RoutesRepository__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21706:1: ( rule__RoutesRepository__Group_4__0__Impl rule__RoutesRepository__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21707:2: rule__RoutesRepository__Group_4__0__Impl rule__RoutesRepository__Group_4__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__0__Impl_in_rule__RoutesRepository__Group_4__043019);
+            rule__RoutesRepository__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__1_in_rule__RoutesRepository__Group_4__043022);
+            rule__RoutesRepository__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21714:1: rule__RoutesRepository__Group_4__0__Impl : ( 'flowRoutes' ) ;
+    public final void rule__RoutesRepository__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21718:1: ( ( 'flowRoutes' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21719:1: ( 'flowRoutes' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21719:1: ( 'flowRoutes' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21720:1: 'flowRoutes'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); 
+            match(input,135,FollowSets001.FOLLOW_135_in_rule__RoutesRepository__Group_4__0__Impl43050); 
+             after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21733:1: rule__RoutesRepository__Group_4__1 : rule__RoutesRepository__Group_4__1__Impl rule__RoutesRepository__Group_4__2 ;
+    public final void rule__RoutesRepository__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21737:1: ( rule__RoutesRepository__Group_4__1__Impl rule__RoutesRepository__Group_4__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21738:2: rule__RoutesRepository__Group_4__1__Impl rule__RoutesRepository__Group_4__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__1__Impl_in_rule__RoutesRepository__Group_4__143081);
+            rule__RoutesRepository__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__2_in_rule__RoutesRepository__Group_4__143084);
+            rule__RoutesRepository__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21745:1: rule__RoutesRepository__Group_4__1__Impl : ( '{' ) ;
+    public final void rule__RoutesRepository__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21749:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21750:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21750:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21751:1: '{'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__RoutesRepository__Group_4__1__Impl43112); 
+             after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21764:1: rule__RoutesRepository__Group_4__2 : rule__RoutesRepository__Group_4__2__Impl rule__RoutesRepository__Group_4__3 ;
+    public final void rule__RoutesRepository__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21768:1: ( rule__RoutesRepository__Group_4__2__Impl rule__RoutesRepository__Group_4__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21769:2: rule__RoutesRepository__Group_4__2__Impl rule__RoutesRepository__Group_4__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__2__Impl_in_rule__RoutesRepository__Group_4__243143);
+            rule__RoutesRepository__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__3_in_rule__RoutesRepository__Group_4__243146);
+            rule__RoutesRepository__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__2"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21776:1: rule__RoutesRepository__Group_4__2__Impl : ( ( rule__RoutesRepository__FlowRoutesAssignment_4_2 ) ) ;
+    public final void rule__RoutesRepository__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21780:1: ( ( ( rule__RoutesRepository__FlowRoutesAssignment_4_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21781:1: ( ( rule__RoutesRepository__FlowRoutesAssignment_4_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21781:1: ( ( rule__RoutesRepository__FlowRoutesAssignment_4_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21782:1: ( rule__RoutesRepository__FlowRoutesAssignment_4_2 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21783:1: ( rule__RoutesRepository__FlowRoutesAssignment_4_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21783:2: rule__RoutesRepository__FlowRoutesAssignment_4_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__FlowRoutesAssignment_4_2_in_rule__RoutesRepository__Group_4__2__Impl43173);
+            rule__RoutesRepository__FlowRoutesAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21793:1: rule__RoutesRepository__Group_4__3 : rule__RoutesRepository__Group_4__3__Impl rule__RoutesRepository__Group_4__4 ;
+    public final void rule__RoutesRepository__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21797:1: ( rule__RoutesRepository__Group_4__3__Impl rule__RoutesRepository__Group_4__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21798:2: rule__RoutesRepository__Group_4__3__Impl rule__RoutesRepository__Group_4__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__3__Impl_in_rule__RoutesRepository__Group_4__343203);
+            rule__RoutesRepository__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__4_in_rule__RoutesRepository__Group_4__343206);
+            rule__RoutesRepository__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__3"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21805:1: rule__RoutesRepository__Group_4__3__Impl : ( ( rule__RoutesRepository__Group_4_3__0 )* ) ;
+    public final void rule__RoutesRepository__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21809:1: ( ( ( rule__RoutesRepository__Group_4_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21810:1: ( ( rule__RoutesRepository__Group_4_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21810:1: ( ( rule__RoutesRepository__Group_4_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21811:1: ( rule__RoutesRepository__Group_4_3__0 )*
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21812:1: ( rule__RoutesRepository__Group_4_3__0 )*
+            loop107:
+            do {
+                int alt107=2;
+                int LA107_0 = input.LA(1);
+
+                if ( (LA107_0==31) ) {
+                    alt107=1;
+                }
+
+
+                switch (alt107) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21812:2: rule__RoutesRepository__Group_4_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4_3__0_in_rule__RoutesRepository__Group_4__3__Impl43233);
+            	    rule__RoutesRepository__Group_4_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop107;
+                }
+            } while (true);
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21822:1: rule__RoutesRepository__Group_4__4 : rule__RoutesRepository__Group_4__4__Impl ;
+    public final void rule__RoutesRepository__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21826:1: ( rule__RoutesRepository__Group_4__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21827:2: rule__RoutesRepository__Group_4__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4__4__Impl_in_rule__RoutesRepository__Group_4__443264);
+            rule__RoutesRepository__Group_4__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__4"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21833:1: rule__RoutesRepository__Group_4__4__Impl : ( '}' ) ;
+    public final void rule__RoutesRepository__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21837:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21838:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21838:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21839:1: '}'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__RoutesRepository__Group_4__4__Impl43292); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21862:1: rule__RoutesRepository__Group_4_3__0 : rule__RoutesRepository__Group_4_3__0__Impl rule__RoutesRepository__Group_4_3__1 ;
+    public final void rule__RoutesRepository__Group_4_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21866:1: ( rule__RoutesRepository__Group_4_3__0__Impl rule__RoutesRepository__Group_4_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21867:2: rule__RoutesRepository__Group_4_3__0__Impl rule__RoutesRepository__Group_4_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4_3__0__Impl_in_rule__RoutesRepository__Group_4_3__043333);
+            rule__RoutesRepository__Group_4_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4_3__1_in_rule__RoutesRepository__Group_4_3__043336);
+            rule__RoutesRepository__Group_4_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4_3__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21874:1: rule__RoutesRepository__Group_4_3__0__Impl : ( ',' ) ;
+    public final void rule__RoutesRepository__Group_4_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21878:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21879:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21879:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21880:1: ','
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__RoutesRepository__Group_4_3__0__Impl43364); 
+             after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4_3__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21893:1: rule__RoutesRepository__Group_4_3__1 : rule__RoutesRepository__Group_4_3__1__Impl ;
+    public final void rule__RoutesRepository__Group_4_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21897:1: ( rule__RoutesRepository__Group_4_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21898:2: rule__RoutesRepository__Group_4_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_4_3__1__Impl_in_rule__RoutesRepository__Group_4_3__143395);
+            rule__RoutesRepository__Group_4_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4_3__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_4_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21904:1: rule__RoutesRepository__Group_4_3__1__Impl : ( ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 ) ) ;
+    public final void rule__RoutesRepository__Group_4_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21908:1: ( ( ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21909:1: ( ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21909:1: ( ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21910:1: ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21911:1: ( rule__RoutesRepository__FlowRoutesAssignment_4_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21911:2: rule__RoutesRepository__FlowRoutesAssignment_4_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__FlowRoutesAssignment_4_3_1_in_rule__RoutesRepository__Group_4_3__1__Impl43422);
+            rule__RoutesRepository__FlowRoutesAssignment_4_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesAssignment_4_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_4_3__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21925:1: rule__RoutesRepository__Group_5__0 : rule__RoutesRepository__Group_5__0__Impl rule__RoutesRepository__Group_5__1 ;
+    public final void rule__RoutesRepository__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21929:1: ( rule__RoutesRepository__Group_5__0__Impl rule__RoutesRepository__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21930:2: rule__RoutesRepository__Group_5__0__Impl rule__RoutesRepository__Group_5__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__0__Impl_in_rule__RoutesRepository__Group_5__043456);
+            rule__RoutesRepository__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__1_in_rule__RoutesRepository__Group_5__043459);
+            rule__RoutesRepository__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21937:1: rule__RoutesRepository__Group_5__0__Impl : ( 'directions' ) ;
+    public final void rule__RoutesRepository__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21941:1: ( ( 'directions' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21942:1: ( 'directions' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21942:1: ( 'directions' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21943:1: 'directions'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); 
+            match(input,136,FollowSets001.FOLLOW_136_in_rule__RoutesRepository__Group_5__0__Impl43487); 
+             after(grammarAccess.getRoutesRepositoryAccess().getDirectionsKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21956:1: rule__RoutesRepository__Group_5__1 : rule__RoutesRepository__Group_5__1__Impl rule__RoutesRepository__Group_5__2 ;
+    public final void rule__RoutesRepository__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21960:1: ( rule__RoutesRepository__Group_5__1__Impl rule__RoutesRepository__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21961:2: rule__RoutesRepository__Group_5__1__Impl rule__RoutesRepository__Group_5__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__1__Impl_in_rule__RoutesRepository__Group_5__143518);
+            rule__RoutesRepository__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__2_in_rule__RoutesRepository__Group_5__143521);
+            rule__RoutesRepository__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21968:1: rule__RoutesRepository__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__RoutesRepository__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21972:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21973:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21973:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21974:1: '{'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__RoutesRepository__Group_5__1__Impl43549); 
+             after(grammarAccess.getRoutesRepositoryAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21987:1: rule__RoutesRepository__Group_5__2 : rule__RoutesRepository__Group_5__2__Impl rule__RoutesRepository__Group_5__3 ;
+    public final void rule__RoutesRepository__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21991:1: ( rule__RoutesRepository__Group_5__2__Impl rule__RoutesRepository__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21992:2: rule__RoutesRepository__Group_5__2__Impl rule__RoutesRepository__Group_5__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__2__Impl_in_rule__RoutesRepository__Group_5__243580);
+            rule__RoutesRepository__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__3_in_rule__RoutesRepository__Group_5__243583);
+            rule__RoutesRepository__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__2"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:21999:1: rule__RoutesRepository__Group_5__2__Impl : ( ( rule__RoutesRepository__DirectionsAssignment_5_2 ) ) ;
+    public final void rule__RoutesRepository__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22003:1: ( ( ( rule__RoutesRepository__DirectionsAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22004:1: ( ( rule__RoutesRepository__DirectionsAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22004:1: ( ( rule__RoutesRepository__DirectionsAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22005:1: ( rule__RoutesRepository__DirectionsAssignment_5_2 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22006:1: ( rule__RoutesRepository__DirectionsAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22006:2: rule__RoutesRepository__DirectionsAssignment_5_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__DirectionsAssignment_5_2_in_rule__RoutesRepository__Group_5__2__Impl43610);
+            rule__RoutesRepository__DirectionsAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22016:1: rule__RoutesRepository__Group_5__3 : rule__RoutesRepository__Group_5__3__Impl rule__RoutesRepository__Group_5__4 ;
+    public final void rule__RoutesRepository__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22020:1: ( rule__RoutesRepository__Group_5__3__Impl rule__RoutesRepository__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22021:2: rule__RoutesRepository__Group_5__3__Impl rule__RoutesRepository__Group_5__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__3__Impl_in_rule__RoutesRepository__Group_5__343640);
+            rule__RoutesRepository__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__4_in_rule__RoutesRepository__Group_5__343643);
+            rule__RoutesRepository__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__3"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22028:1: rule__RoutesRepository__Group_5__3__Impl : ( ( rule__RoutesRepository__Group_5_3__0 )* ) ;
+    public final void rule__RoutesRepository__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22032:1: ( ( ( rule__RoutesRepository__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22033:1: ( ( rule__RoutesRepository__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22033:1: ( ( rule__RoutesRepository__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22034:1: ( rule__RoutesRepository__Group_5_3__0 )*
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22035:1: ( rule__RoutesRepository__Group_5_3__0 )*
+            loop108:
+            do {
+                int alt108=2;
+                int LA108_0 = input.LA(1);
+
+                if ( (LA108_0==31) ) {
+                    alt108=1;
+                }
+
+
+                switch (alt108) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22035:2: rule__RoutesRepository__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5_3__0_in_rule__RoutesRepository__Group_5__3__Impl43670);
+            	    rule__RoutesRepository__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop108;
+                }
+            } while (true);
+
+             after(grammarAccess.getRoutesRepositoryAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22045:1: rule__RoutesRepository__Group_5__4 : rule__RoutesRepository__Group_5__4__Impl ;
+    public final void rule__RoutesRepository__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22049:1: ( rule__RoutesRepository__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22050:2: rule__RoutesRepository__Group_5__4__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5__4__Impl_in_rule__RoutesRepository__Group_5__443701);
+            rule__RoutesRepository__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__4"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22056:1: rule__RoutesRepository__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__RoutesRepository__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22060:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22061:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22061:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22062:1: '}'
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__RoutesRepository__Group_5__4__Impl43729); 
+             after(grammarAccess.getRoutesRepositoryAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22085:1: rule__RoutesRepository__Group_5_3__0 : rule__RoutesRepository__Group_5_3__0__Impl rule__RoutesRepository__Group_5_3__1 ;
+    public final void rule__RoutesRepository__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22089:1: ( rule__RoutesRepository__Group_5_3__0__Impl rule__RoutesRepository__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22090:2: rule__RoutesRepository__Group_5_3__0__Impl rule__RoutesRepository__Group_5_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5_3__0__Impl_in_rule__RoutesRepository__Group_5_3__043770);
+            rule__RoutesRepository__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5_3__1_in_rule__RoutesRepository__Group_5_3__043773);
+            rule__RoutesRepository__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5_3__0"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22097:1: rule__RoutesRepository__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__RoutesRepository__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22101:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22102:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22102:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22103:1: ','
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets001.FOLLOW_31_in_rule__RoutesRepository__Group_5_3__0__Impl43801); 
+             after(grammarAccess.getRoutesRepositoryAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22116:1: rule__RoutesRepository__Group_5_3__1 : rule__RoutesRepository__Group_5_3__1__Impl ;
+    public final void rule__RoutesRepository__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22120:1: ( rule__RoutesRepository__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22121:2: rule__RoutesRepository__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__Group_5_3__1__Impl_in_rule__RoutesRepository__Group_5_3__143832);
+            rule__RoutesRepository__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5_3__1"
+
+
+    // $ANTLR start "rule__RoutesRepository__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22127:1: rule__RoutesRepository__Group_5_3__1__Impl : ( ( rule__RoutesRepository__DirectionsAssignment_5_3_1 ) ) ;
+    public final void rule__RoutesRepository__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22131:1: ( ( ( rule__RoutesRepository__DirectionsAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22132:1: ( ( rule__RoutesRepository__DirectionsAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22132:1: ( ( rule__RoutesRepository__DirectionsAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22133:1: ( rule__RoutesRepository__DirectionsAssignment_5_3_1 )
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22134:1: ( rule__RoutesRepository__DirectionsAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22134:2: rule__RoutesRepository__DirectionsAssignment_5_3_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__RoutesRepository__DirectionsAssignment_5_3_1_in_rule__RoutesRepository__Group_5_3__1__Impl43859);
+            rule__RoutesRepository__DirectionsAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRoutesRepositoryAccess().getDirectionsAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22148:1: rule__ProtocolStack__Group__0 : rule__ProtocolStack__Group__0__Impl rule__ProtocolStack__Group__1 ;
+    public final void rule__ProtocolStack__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22152:1: ( rule__ProtocolStack__Group__0__Impl rule__ProtocolStack__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22153:2: rule__ProtocolStack__Group__0__Impl rule__ProtocolStack__Group__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__0__Impl_in_rule__ProtocolStack__Group__043893);
+            rule__ProtocolStack__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__1_in_rule__ProtocolStack__Group__043896);
+            rule__ProtocolStack__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__0"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22160:1: rule__ProtocolStack__Group__0__Impl : ( 'ProtocolStack' ) ;
+    public final void rule__ProtocolStack__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22164:1: ( ( 'ProtocolStack' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22165:1: ( 'ProtocolStack' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22165:1: ( 'ProtocolStack' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22166:1: 'ProtocolStack'
+            {
+             before(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); 
+            match(input,137,FollowSets001.FOLLOW_137_in_rule__ProtocolStack__Group__0__Impl43924); 
+             after(grammarAccess.getProtocolStackAccess().getProtocolStackKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22179:1: rule__ProtocolStack__Group__1 : rule__ProtocolStack__Group__1__Impl rule__ProtocolStack__Group__2 ;
+    public final void rule__ProtocolStack__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22183:1: ( rule__ProtocolStack__Group__1__Impl rule__ProtocolStack__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22184:2: rule__ProtocolStack__Group__1__Impl rule__ProtocolStack__Group__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__1__Impl_in_rule__ProtocolStack__Group__143955);
+            rule__ProtocolStack__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__2_in_rule__ProtocolStack__Group__143958);
+            rule__ProtocolStack__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__1"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22191:1: rule__ProtocolStack__Group__1__Impl : ( ( rule__ProtocolStack__NameAssignment_1 ) ) ;
+    public final void rule__ProtocolStack__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22195:1: ( ( ( rule__ProtocolStack__NameAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22196:1: ( ( rule__ProtocolStack__NameAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22196:1: ( ( rule__ProtocolStack__NameAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22197:1: ( rule__ProtocolStack__NameAssignment_1 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22198:1: ( rule__ProtocolStack__NameAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22198:2: rule__ProtocolStack__NameAssignment_1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__NameAssignment_1_in_rule__ProtocolStack__Group__1__Impl43985);
+            rule__ProtocolStack__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22208:1: rule__ProtocolStack__Group__2 : rule__ProtocolStack__Group__2__Impl rule__ProtocolStack__Group__3 ;
+    public final void rule__ProtocolStack__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22212:1: ( rule__ProtocolStack__Group__2__Impl rule__ProtocolStack__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22213:2: rule__ProtocolStack__Group__2__Impl rule__ProtocolStack__Group__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__2__Impl_in_rule__ProtocolStack__Group__244015);
+            rule__ProtocolStack__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__3_in_rule__ProtocolStack__Group__244018);
+            rule__ProtocolStack__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__2"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22220:1: rule__ProtocolStack__Group__2__Impl : ( '{' ) ;
+    public final void rule__ProtocolStack__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22224:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22225:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22225:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22226:1: '{'
+            {
+             before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolStack__Group__2__Impl44046); 
+             after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22239:1: rule__ProtocolStack__Group__3 : rule__ProtocolStack__Group__3__Impl rule__ProtocolStack__Group__4 ;
+    public final void rule__ProtocolStack__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22243:1: ( rule__ProtocolStack__Group__3__Impl rule__ProtocolStack__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22244:2: rule__ProtocolStack__Group__3__Impl rule__ProtocolStack__Group__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__3__Impl_in_rule__ProtocolStack__Group__344077);
+            rule__ProtocolStack__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__4_in_rule__ProtocolStack__Group__344080);
+            rule__ProtocolStack__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__3"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22251:1: rule__ProtocolStack__Group__3__Impl : ( ( rule__ProtocolStack__Group_3__0 )? ) ;
+    public final void rule__ProtocolStack__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22255:1: ( ( ( rule__ProtocolStack__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22256:1: ( ( rule__ProtocolStack__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22256:1: ( ( rule__ProtocolStack__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22257:1: ( rule__ProtocolStack__Group_3__0 )?
+            {
+             before(grammarAccess.getProtocolStackAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22258:1: ( rule__ProtocolStack__Group_3__0 )?
+            int alt109=2;
+            int LA109_0 = input.LA(1);
+
+            if ( (LA109_0==67) ) {
+                alt109=1;
+            }
+            switch (alt109) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22258:2: rule__ProtocolStack__Group_3__0
+                    {
+                    pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__0_in_rule__ProtocolStack__Group__3__Impl44107);
+                    rule__ProtocolStack__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22268:1: rule__ProtocolStack__Group__4 : rule__ProtocolStack__Group__4__Impl rule__ProtocolStack__Group__5 ;
+    public final void rule__ProtocolStack__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22272:1: ( rule__ProtocolStack__Group__4__Impl rule__ProtocolStack__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22273:2: rule__ProtocolStack__Group__4__Impl rule__ProtocolStack__Group__5
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__4__Impl_in_rule__ProtocolStack__Group__444138);
+            rule__ProtocolStack__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__5_in_rule__ProtocolStack__Group__444141);
+            rule__ProtocolStack__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__4"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22280:1: rule__ProtocolStack__Group__4__Impl : ( 'layers' ) ;
+    public final void rule__ProtocolStack__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22284:1: ( ( 'layers' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22285:1: ( 'layers' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22285:1: ( 'layers' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22286:1: 'layers'
+            {
+             before(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); 
+            match(input,138,FollowSets001.FOLLOW_138_in_rule__ProtocolStack__Group__4__Impl44169); 
+             after(grammarAccess.getProtocolStackAccess().getLayersKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22299:1: rule__ProtocolStack__Group__5 : rule__ProtocolStack__Group__5__Impl rule__ProtocolStack__Group__6 ;
+    public final void rule__ProtocolStack__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22303:1: ( rule__ProtocolStack__Group__5__Impl rule__ProtocolStack__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22304:2: rule__ProtocolStack__Group__5__Impl rule__ProtocolStack__Group__6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__5__Impl_in_rule__ProtocolStack__Group__544200);
+            rule__ProtocolStack__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__6_in_rule__ProtocolStack__Group__544203);
+            rule__ProtocolStack__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__5"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22311:1: rule__ProtocolStack__Group__5__Impl : ( '{' ) ;
+    public final void rule__ProtocolStack__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22315:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22316:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22316:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22317:1: '{'
+            {
+             before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolStack__Group__5__Impl44231); 
+             after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22330:1: rule__ProtocolStack__Group__6 : rule__ProtocolStack__Group__6__Impl rule__ProtocolStack__Group__7 ;
+    public final void rule__ProtocolStack__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22334:1: ( rule__ProtocolStack__Group__6__Impl rule__ProtocolStack__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22335:2: rule__ProtocolStack__Group__6__Impl rule__ProtocolStack__Group__7
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__6__Impl_in_rule__ProtocolStack__Group__644262);
+            rule__ProtocolStack__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__7_in_rule__ProtocolStack__Group__644265);
+            rule__ProtocolStack__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__6"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22342:1: rule__ProtocolStack__Group__6__Impl : ( ( rule__ProtocolStack__LayersAssignment_6 ) ) ;
+    public final void rule__ProtocolStack__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22346:1: ( ( ( rule__ProtocolStack__LayersAssignment_6 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22347:1: ( ( rule__ProtocolStack__LayersAssignment_6 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22347:1: ( ( rule__ProtocolStack__LayersAssignment_6 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22348:1: ( rule__ProtocolStack__LayersAssignment_6 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22349:1: ( rule__ProtocolStack__LayersAssignment_6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22349:2: rule__ProtocolStack__LayersAssignment_6
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__LayersAssignment_6_in_rule__ProtocolStack__Group__6__Impl44292);
+            rule__ProtocolStack__LayersAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getLayersAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22359:1: rule__ProtocolStack__Group__7 : rule__ProtocolStack__Group__7__Impl rule__ProtocolStack__Group__8 ;
+    public final void rule__ProtocolStack__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22363:1: ( rule__ProtocolStack__Group__7__Impl rule__ProtocolStack__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22364:2: rule__ProtocolStack__Group__7__Impl rule__ProtocolStack__Group__8
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__7__Impl_in_rule__ProtocolStack__Group__744322);
+            rule__ProtocolStack__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__8_in_rule__ProtocolStack__Group__744325);
+            rule__ProtocolStack__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__7"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22371:1: rule__ProtocolStack__Group__7__Impl : ( ( rule__ProtocolStack__Group_7__0 )* ) ;
+    public final void rule__ProtocolStack__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22375:1: ( ( ( rule__ProtocolStack__Group_7__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22376:1: ( ( rule__ProtocolStack__Group_7__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22376:1: ( ( rule__ProtocolStack__Group_7__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22377:1: ( rule__ProtocolStack__Group_7__0 )*
+            {
+             before(grammarAccess.getProtocolStackAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22378:1: ( rule__ProtocolStack__Group_7__0 )*
+            loop110:
+            do {
+                int alt110=2;
+                int LA110_0 = input.LA(1);
+
+                if ( (LA110_0==31) ) {
+                    alt110=1;
+                }
+
+
+                switch (alt110) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22378:2: rule__ProtocolStack__Group_7__0
+            	    {
+            	    pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_7__0_in_rule__ProtocolStack__Group__7__Impl44352);
+            	    rule__ProtocolStack__Group_7__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop110;
+                }
+            } while (true);
+
+             after(grammarAccess.getProtocolStackAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22388:1: rule__ProtocolStack__Group__8 : rule__ProtocolStack__Group__8__Impl rule__ProtocolStack__Group__9 ;
+    public final void rule__ProtocolStack__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22392:1: ( rule__ProtocolStack__Group__8__Impl rule__ProtocolStack__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22393:2: rule__ProtocolStack__Group__8__Impl rule__ProtocolStack__Group__9
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__8__Impl_in_rule__ProtocolStack__Group__844383);
+            rule__ProtocolStack__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__9_in_rule__ProtocolStack__Group__844386);
+            rule__ProtocolStack__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__8"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22400:1: rule__ProtocolStack__Group__8__Impl : ( '}' ) ;
+    public final void rule__ProtocolStack__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22404:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22405:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22405:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22406:1: '}'
+            {
+             before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ProtocolStack__Group__8__Impl44414); 
+             after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22419:1: rule__ProtocolStack__Group__9 : rule__ProtocolStack__Group__9__Impl ;
+    public final void rule__ProtocolStack__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22423:1: ( rule__ProtocolStack__Group__9__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22424:2: rule__ProtocolStack__Group__9__Impl
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group__9__Impl_in_rule__ProtocolStack__Group__944445);
+            rule__ProtocolStack__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__9"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22430:1: rule__ProtocolStack__Group__9__Impl : ( '}' ) ;
+    public final void rule__ProtocolStack__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22434:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22435:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22435:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22436:1: '}'
+            {
+             before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); 
+            match(input,29,FollowSets001.FOLLOW_29_in_rule__ProtocolStack__Group__9__Impl44473); 
+             after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22469:1: rule__ProtocolStack__Group_3__0 : rule__ProtocolStack__Group_3__0__Impl rule__ProtocolStack__Group_3__1 ;
+    public final void rule__ProtocolStack__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22473:1: ( rule__ProtocolStack__Group_3__0__Impl rule__ProtocolStack__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22474:2: rule__ProtocolStack__Group_3__0__Impl rule__ProtocolStack__Group_3__1
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__0__Impl_in_rule__ProtocolStack__Group_3__044524);
+            rule__ProtocolStack__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__1_in_rule__ProtocolStack__Group_3__044527);
+            rule__ProtocolStack__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__0"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22481:1: rule__ProtocolStack__Group_3__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__ProtocolStack__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22485:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22486:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22486:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22487:1: 'alternativeNames'
+            {
+             before(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); 
+            match(input,67,FollowSets001.FOLLOW_67_in_rule__ProtocolStack__Group_3__0__Impl44555); 
+             after(grammarAccess.getProtocolStackAccess().getAlternativeNamesKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22500:1: rule__ProtocolStack__Group_3__1 : rule__ProtocolStack__Group_3__1__Impl rule__ProtocolStack__Group_3__2 ;
+    public final void rule__ProtocolStack__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22504:1: ( rule__ProtocolStack__Group_3__1__Impl rule__ProtocolStack__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22505:2: rule__ProtocolStack__Group_3__1__Impl rule__ProtocolStack__Group_3__2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__1__Impl_in_rule__ProtocolStack__Group_3__144586);
+            rule__ProtocolStack__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__2_in_rule__ProtocolStack__Group_3__144589);
+            rule__ProtocolStack__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__1"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22512:1: rule__ProtocolStack__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__ProtocolStack__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22516:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22517:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22517:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22518:1: '{'
+            {
+             before(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets001.FOLLOW_23_in_rule__ProtocolStack__Group_3__1__Impl44617); 
+             after(grammarAccess.getProtocolStackAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22531:1: rule__ProtocolStack__Group_3__2 : rule__ProtocolStack__Group_3__2__Impl rule__ProtocolStack__Group_3__3 ;
+    public final void rule__ProtocolStack__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22535:1: ( rule__ProtocolStack__Group_3__2__Impl rule__ProtocolStack__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22536:2: rule__ProtocolStack__Group_3__2__Impl rule__ProtocolStack__Group_3__3
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__2__Impl_in_rule__ProtocolStack__Group_3__244648);
+            rule__ProtocolStack__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__3_in_rule__ProtocolStack__Group_3__244651);
+            rule__ProtocolStack__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__2"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22543:1: rule__ProtocolStack__Group_3__2__Impl : ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 ) ) ;
+    public final void rule__ProtocolStack__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22547:1: ( ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22548:1: ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22548:1: ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22549:1: ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22550:1: ( rule__ProtocolStack__AlternativeNamesAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22550:2: rule__ProtocolStack__AlternativeNamesAssignment_3_2
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__AlternativeNamesAssignment_3_2_in_rule__ProtocolStack__Group_3__2__Impl44678);
+            rule__ProtocolStack__AlternativeNamesAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22560:1: rule__ProtocolStack__Group_3__3 : rule__ProtocolStack__Group_3__3__Impl rule__ProtocolStack__Group_3__4 ;
+    public final void rule__ProtocolStack__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22564:1: ( rule__ProtocolStack__Group_3__3__Impl rule__ProtocolStack__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22565:2: rule__ProtocolStack__Group_3__3__Impl rule__ProtocolStack__Group_3__4
+            {
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__3__Impl_in_rule__ProtocolStack__Group_3__344708);
+            rule__ProtocolStack__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets001.FOLLOW_rule__ProtocolStack__Group_3__4_in_rule__ProtocolStack__Group_3__344711);
+            rule__ProtocolStack__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__3"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22572:1: rule__ProtocolStack__Group_3__3__Impl : ( ( rule__ProtocolStack__Group_3_3__0 )* ) ;
+    public final void rule__ProtocolStack__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22576:1: ( ( ( rule__ProtocolStack__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22577:1: ( ( rule__ProtocolStack__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22577:1: ( ( rule__ProtocolStack__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22578:1: ( rule__ProtocolStack__Group_3_3__0 )*
+            {
+             before(grammarAccess.getProtocolStackAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22579:1: ( rule__ProtocolStack__Group_3_3__0 )*
+            loop111:
+            do {
+                int alt111=2;
+                int LA111_0 = input.LA(1);
+
+                if ( (LA111_0==31) ) {
+                    alt111=1;
+                }
+
+
+                switch (alt111) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22579:2: rule__ProtocolStack__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_3_3__0_in_rule__ProtocolStack__Group_3__3__Impl44738);
+            	    rule__ProtocolStack__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop111;
+                }
+            } while (true);
+
+             after(grammarAccess.getProtocolStackAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22589:1: rule__ProtocolStack__Group_3__4 : rule__ProtocolStack__Group_3__4__Impl ;
+    public final void rule__ProtocolStack__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22593:1: ( rule__ProtocolStack__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22594:2: rule__ProtocolStack__Group_3__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_3__4__Impl_in_rule__ProtocolStack__Group_3__444769);
+            rule__ProtocolStack__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__4"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22600:1: rule__ProtocolStack__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__ProtocolStack__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22604:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22605:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22605:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22606:1: '}'
+            {
+             before(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__ProtocolStack__Group_3__4__Impl44797); 
+             after(grammarAccess.getProtocolStackAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22629:1: rule__ProtocolStack__Group_3_3__0 : rule__ProtocolStack__Group_3_3__0__Impl rule__ProtocolStack__Group_3_3__1 ;
+    public final void rule__ProtocolStack__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22633:1: ( rule__ProtocolStack__Group_3_3__0__Impl rule__ProtocolStack__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22634:2: rule__ProtocolStack__Group_3_3__0__Impl rule__ProtocolStack__Group_3_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_3_3__0__Impl_in_rule__ProtocolStack__Group_3_3__044838);
+            rule__ProtocolStack__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_3_3__1_in_rule__ProtocolStack__Group_3_3__044841);
+            rule__ProtocolStack__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3_3__0"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22641:1: rule__ProtocolStack__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__ProtocolStack__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22645:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22646:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22646:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22647:1: ','
+            {
+             before(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__ProtocolStack__Group_3_3__0__Impl44869); 
+             after(grammarAccess.getProtocolStackAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22660:1: rule__ProtocolStack__Group_3_3__1 : rule__ProtocolStack__Group_3_3__1__Impl ;
+    public final void rule__ProtocolStack__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22664:1: ( rule__ProtocolStack__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22665:2: rule__ProtocolStack__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_3_3__1__Impl_in_rule__ProtocolStack__Group_3_3__144900);
+            rule__ProtocolStack__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3_3__1"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22671:1: rule__ProtocolStack__Group_3_3__1__Impl : ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 ) ) ;
+    public final void rule__ProtocolStack__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22675:1: ( ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22676:1: ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22676:1: ( ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22677:1: ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22678:1: ( rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22678:2: rule__ProtocolStack__AlternativeNamesAssignment_3_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__AlternativeNamesAssignment_3_3_1_in_rule__ProtocolStack__Group_3_3__1__Impl44927);
+            rule__ProtocolStack__AlternativeNamesAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getAlternativeNamesAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22692:1: rule__ProtocolStack__Group_7__0 : rule__ProtocolStack__Group_7__0__Impl rule__ProtocolStack__Group_7__1 ;
+    public final void rule__ProtocolStack__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22696:1: ( rule__ProtocolStack__Group_7__0__Impl rule__ProtocolStack__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22697:2: rule__ProtocolStack__Group_7__0__Impl rule__ProtocolStack__Group_7__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_7__0__Impl_in_rule__ProtocolStack__Group_7__044961);
+            rule__ProtocolStack__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_7__1_in_rule__ProtocolStack__Group_7__044964);
+            rule__ProtocolStack__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_7__0"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22704:1: rule__ProtocolStack__Group_7__0__Impl : ( ',' ) ;
+    public final void rule__ProtocolStack__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22708:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22709:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22709:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22710:1: ','
+            {
+             before(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__ProtocolStack__Group_7__0__Impl44992); 
+             after(grammarAccess.getProtocolStackAccess().getCommaKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22723:1: rule__ProtocolStack__Group_7__1 : rule__ProtocolStack__Group_7__1__Impl ;
+    public final void rule__ProtocolStack__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22727:1: ( rule__ProtocolStack__Group_7__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22728:2: rule__ProtocolStack__Group_7__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__Group_7__1__Impl_in_rule__ProtocolStack__Group_7__145023);
+            rule__ProtocolStack__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_7__1"
+
+
+    // $ANTLR start "rule__ProtocolStack__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22734:1: rule__ProtocolStack__Group_7__1__Impl : ( ( rule__ProtocolStack__LayersAssignment_7_1 ) ) ;
+    public final void rule__ProtocolStack__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22738:1: ( ( ( rule__ProtocolStack__LayersAssignment_7_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22739:1: ( ( rule__ProtocolStack__LayersAssignment_7_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22739:1: ( ( rule__ProtocolStack__LayersAssignment_7_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22740:1: ( rule__ProtocolStack__LayersAssignment_7_1 )
+            {
+             before(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22741:1: ( rule__ProtocolStack__LayersAssignment_7_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22741:2: rule__ProtocolStack__LayersAssignment_7_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolStack__LayersAssignment_7_1_in_rule__ProtocolStack__Group_7__1__Impl45050);
+            rule__ProtocolStack__LayersAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolStackAccess().getLayersAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22755:1: rule__ProtocolLayer__Group__0 : rule__ProtocolLayer__Group__0__Impl rule__ProtocolLayer__Group__1 ;
+    public final void rule__ProtocolLayer__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22759:1: ( rule__ProtocolLayer__Group__0__Impl rule__ProtocolLayer__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22760:2: rule__ProtocolLayer__Group__0__Impl rule__ProtocolLayer__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__0__Impl_in_rule__ProtocolLayer__Group__045084);
+            rule__ProtocolLayer__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__1_in_rule__ProtocolLayer__Group__045087);
+            rule__ProtocolLayer__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__0"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22767:1: rule__ProtocolLayer__Group__0__Impl : ( 'ProtocolLayer' ) ;
+    public final void rule__ProtocolLayer__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22771:1: ( ( 'ProtocolLayer' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22772:1: ( 'ProtocolLayer' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22772:1: ( 'ProtocolLayer' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22773:1: 'ProtocolLayer'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); 
+            match(input,139,FollowSets002.FOLLOW_139_in_rule__ProtocolLayer__Group__0__Impl45115); 
+             after(grammarAccess.getProtocolLayerAccess().getProtocolLayerKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22786:1: rule__ProtocolLayer__Group__1 : rule__ProtocolLayer__Group__1__Impl rule__ProtocolLayer__Group__2 ;
+    public final void rule__ProtocolLayer__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22790:1: ( rule__ProtocolLayer__Group__1__Impl rule__ProtocolLayer__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22791:2: rule__ProtocolLayer__Group__1__Impl rule__ProtocolLayer__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__1__Impl_in_rule__ProtocolLayer__Group__145146);
+            rule__ProtocolLayer__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__2_in_rule__ProtocolLayer__Group__145149);
+            rule__ProtocolLayer__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22798:1: rule__ProtocolLayer__Group__1__Impl : ( ( rule__ProtocolLayer__NameAssignment_1 ) ) ;
+    public final void rule__ProtocolLayer__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22802:1: ( ( ( rule__ProtocolLayer__NameAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22803:1: ( ( rule__ProtocolLayer__NameAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22803:1: ( ( rule__ProtocolLayer__NameAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22804:1: ( rule__ProtocolLayer__NameAssignment_1 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22805:1: ( rule__ProtocolLayer__NameAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22805:2: rule__ProtocolLayer__NameAssignment_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__NameAssignment_1_in_rule__ProtocolLayer__Group__1__Impl45176);
+            rule__ProtocolLayer__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22815:1: rule__ProtocolLayer__Group__2 : rule__ProtocolLayer__Group__2__Impl rule__ProtocolLayer__Group__3 ;
+    public final void rule__ProtocolLayer__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22819:1: ( rule__ProtocolLayer__Group__2__Impl rule__ProtocolLayer__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22820:2: rule__ProtocolLayer__Group__2__Impl rule__ProtocolLayer__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__2__Impl_in_rule__ProtocolLayer__Group__245206);
+            rule__ProtocolLayer__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__3_in_rule__ProtocolLayer__Group__245209);
+            rule__ProtocolLayer__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__2"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22827:1: rule__ProtocolLayer__Group__2__Impl : ( '{' ) ;
+    public final void rule__ProtocolLayer__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22831:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22832:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22832:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22833:1: '{'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__ProtocolLayer__Group__2__Impl45237); 
+             after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22846:1: rule__ProtocolLayer__Group__3 : rule__ProtocolLayer__Group__3__Impl rule__ProtocolLayer__Group__4 ;
+    public final void rule__ProtocolLayer__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22850:1: ( rule__ProtocolLayer__Group__3__Impl rule__ProtocolLayer__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22851:2: rule__ProtocolLayer__Group__3__Impl rule__ProtocolLayer__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__3__Impl_in_rule__ProtocolLayer__Group__345268);
+            rule__ProtocolLayer__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__4_in_rule__ProtocolLayer__Group__345271);
+            rule__ProtocolLayer__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__3"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22858:1: rule__ProtocolLayer__Group__3__Impl : ( ( rule__ProtocolLayer__Group_3__0 )? ) ;
+    public final void rule__ProtocolLayer__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22862:1: ( ( ( rule__ProtocolLayer__Group_3__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22863:1: ( ( rule__ProtocolLayer__Group_3__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22863:1: ( ( rule__ProtocolLayer__Group_3__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22864:1: ( rule__ProtocolLayer__Group_3__0 )?
+            {
+             before(grammarAccess.getProtocolLayerAccess().getGroup_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22865:1: ( rule__ProtocolLayer__Group_3__0 )?
+            int alt112=2;
+            int LA112_0 = input.LA(1);
+
+            if ( (LA112_0==67) ) {
+                alt112=1;
+            }
+            switch (alt112) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22865:2: rule__ProtocolLayer__Group_3__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__0_in_rule__ProtocolLayer__Group__3__Impl45298);
+                    rule__ProtocolLayer__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22875:1: rule__ProtocolLayer__Group__4 : rule__ProtocolLayer__Group__4__Impl rule__ProtocolLayer__Group__5 ;
+    public final void rule__ProtocolLayer__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22879:1: ( rule__ProtocolLayer__Group__4__Impl rule__ProtocolLayer__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22880:2: rule__ProtocolLayer__Group__4__Impl rule__ProtocolLayer__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__4__Impl_in_rule__ProtocolLayer__Group__445329);
+            rule__ProtocolLayer__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__5_in_rule__ProtocolLayer__Group__445332);
+            rule__ProtocolLayer__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__4"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22887:1: rule__ProtocolLayer__Group__4__Impl : ( 'protocol' ) ;
+    public final void rule__ProtocolLayer__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22891:1: ( ( 'protocol' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22892:1: ( 'protocol' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22892:1: ( 'protocol' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22893:1: 'protocol'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); 
+            match(input,140,FollowSets002.FOLLOW_140_in_rule__ProtocolLayer__Group__4__Impl45360); 
+             after(grammarAccess.getProtocolLayerAccess().getProtocolKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22906:1: rule__ProtocolLayer__Group__5 : rule__ProtocolLayer__Group__5__Impl rule__ProtocolLayer__Group__6 ;
+    public final void rule__ProtocolLayer__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22910:1: ( rule__ProtocolLayer__Group__5__Impl rule__ProtocolLayer__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22911:2: rule__ProtocolLayer__Group__5__Impl rule__ProtocolLayer__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__5__Impl_in_rule__ProtocolLayer__Group__545391);
+            rule__ProtocolLayer__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__6_in_rule__ProtocolLayer__Group__545394);
+            rule__ProtocolLayer__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__5"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22918:1: rule__ProtocolLayer__Group__5__Impl : ( ( rule__ProtocolLayer__ProtocolAssignment_5 ) ) ;
+    public final void rule__ProtocolLayer__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22922:1: ( ( ( rule__ProtocolLayer__ProtocolAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22923:1: ( ( rule__ProtocolLayer__ProtocolAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22923:1: ( ( rule__ProtocolLayer__ProtocolAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22924:1: ( rule__ProtocolLayer__ProtocolAssignment_5 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22925:1: ( rule__ProtocolLayer__ProtocolAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22925:2: rule__ProtocolLayer__ProtocolAssignment_5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__ProtocolAssignment_5_in_rule__ProtocolLayer__Group__5__Impl45421);
+            rule__ProtocolLayer__ProtocolAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getProtocolAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22935:1: rule__ProtocolLayer__Group__6 : rule__ProtocolLayer__Group__6__Impl rule__ProtocolLayer__Group__7 ;
+    public final void rule__ProtocolLayer__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22939:1: ( rule__ProtocolLayer__Group__6__Impl rule__ProtocolLayer__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22940:2: rule__ProtocolLayer__Group__6__Impl rule__ProtocolLayer__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__6__Impl_in_rule__ProtocolLayer__Group__645451);
+            rule__ProtocolLayer__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__7_in_rule__ProtocolLayer__Group__645454);
+            rule__ProtocolLayer__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__6"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22947:1: rule__ProtocolLayer__Group__6__Impl : ( ( rule__ProtocolLayer__Group_6__0 )? ) ;
+    public final void rule__ProtocolLayer__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22951:1: ( ( ( rule__ProtocolLayer__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22952:1: ( ( rule__ProtocolLayer__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22952:1: ( ( rule__ProtocolLayer__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22953:1: ( rule__ProtocolLayer__Group_6__0 )?
+            {
+             before(grammarAccess.getProtocolLayerAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22954:1: ( rule__ProtocolLayer__Group_6__0 )?
+            int alt113=2;
+            int LA113_0 = input.LA(1);
+
+            if ( (LA113_0==141) ) {
+                alt113=1;
+            }
+            switch (alt113) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22954:2: rule__ProtocolLayer__Group_6__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_6__0_in_rule__ProtocolLayer__Group__6__Impl45481);
+                    rule__ProtocolLayer__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22964:1: rule__ProtocolLayer__Group__7 : rule__ProtocolLayer__Group__7__Impl rule__ProtocolLayer__Group__8 ;
+    public final void rule__ProtocolLayer__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22968:1: ( rule__ProtocolLayer__Group__7__Impl rule__ProtocolLayer__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22969:2: rule__ProtocolLayer__Group__7__Impl rule__ProtocolLayer__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__7__Impl_in_rule__ProtocolLayer__Group__745512);
+            rule__ProtocolLayer__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__8_in_rule__ProtocolLayer__Group__745515);
+            rule__ProtocolLayer__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__7"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22976:1: rule__ProtocolLayer__Group__7__Impl : ( ( rule__ProtocolLayer__Group_7__0 )? ) ;
+    public final void rule__ProtocolLayer__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22980:1: ( ( ( rule__ProtocolLayer__Group_7__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22981:1: ( ( rule__ProtocolLayer__Group_7__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22981:1: ( ( rule__ProtocolLayer__Group_7__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22982:1: ( rule__ProtocolLayer__Group_7__0 )?
+            {
+             before(grammarAccess.getProtocolLayerAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22983:1: ( rule__ProtocolLayer__Group_7__0 )?
+            int alt114=2;
+            int LA114_0 = input.LA(1);
+
+            if ( (LA114_0==142) ) {
+                alt114=1;
+            }
+            switch (alt114) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22983:2: rule__ProtocolLayer__Group_7__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_7__0_in_rule__ProtocolLayer__Group__7__Impl45542);
+                    rule__ProtocolLayer__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22993:1: rule__ProtocolLayer__Group__8 : rule__ProtocolLayer__Group__8__Impl ;
+    public final void rule__ProtocolLayer__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22997:1: ( rule__ProtocolLayer__Group__8__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:22998:2: rule__ProtocolLayer__Group__8__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group__8__Impl_in_rule__ProtocolLayer__Group__845573);
+            rule__ProtocolLayer__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__8"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23004:1: rule__ProtocolLayer__Group__8__Impl : ( '}' ) ;
+    public final void rule__ProtocolLayer__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23008:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23009:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23009:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23010:1: '}'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__ProtocolLayer__Group__8__Impl45601); 
+             after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23041:1: rule__ProtocolLayer__Group_3__0 : rule__ProtocolLayer__Group_3__0__Impl rule__ProtocolLayer__Group_3__1 ;
+    public final void rule__ProtocolLayer__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23045:1: ( rule__ProtocolLayer__Group_3__0__Impl rule__ProtocolLayer__Group_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23046:2: rule__ProtocolLayer__Group_3__0__Impl rule__ProtocolLayer__Group_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__0__Impl_in_rule__ProtocolLayer__Group_3__045650);
+            rule__ProtocolLayer__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__1_in_rule__ProtocolLayer__Group_3__045653);
+            rule__ProtocolLayer__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__0"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23053:1: rule__ProtocolLayer__Group_3__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__ProtocolLayer__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23057:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23058:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23058:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23059:1: 'alternativeNames'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__ProtocolLayer__Group_3__0__Impl45681); 
+             after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23072:1: rule__ProtocolLayer__Group_3__1 : rule__ProtocolLayer__Group_3__1__Impl rule__ProtocolLayer__Group_3__2 ;
+    public final void rule__ProtocolLayer__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23076:1: ( rule__ProtocolLayer__Group_3__1__Impl rule__ProtocolLayer__Group_3__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23077:2: rule__ProtocolLayer__Group_3__1__Impl rule__ProtocolLayer__Group_3__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__1__Impl_in_rule__ProtocolLayer__Group_3__145712);
+            rule__ProtocolLayer__Group_3__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__2_in_rule__ProtocolLayer__Group_3__145715);
+            rule__ProtocolLayer__Group_3__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23084:1: rule__ProtocolLayer__Group_3__1__Impl : ( '{' ) ;
+    public final void rule__ProtocolLayer__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23088:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23089:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23089:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23090:1: '{'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__ProtocolLayer__Group_3__1__Impl45743); 
+             after(grammarAccess.getProtocolLayerAccess().getLeftCurlyBracketKeyword_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23103:1: rule__ProtocolLayer__Group_3__2 : rule__ProtocolLayer__Group_3__2__Impl rule__ProtocolLayer__Group_3__3 ;
+    public final void rule__ProtocolLayer__Group_3__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23107:1: ( rule__ProtocolLayer__Group_3__2__Impl rule__ProtocolLayer__Group_3__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23108:2: rule__ProtocolLayer__Group_3__2__Impl rule__ProtocolLayer__Group_3__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__2__Impl_in_rule__ProtocolLayer__Group_3__245774);
+            rule__ProtocolLayer__Group_3__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__3_in_rule__ProtocolLayer__Group_3__245777);
+            rule__ProtocolLayer__Group_3__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__2"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23115:1: rule__ProtocolLayer__Group_3__2__Impl : ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 ) ) ;
+    public final void rule__ProtocolLayer__Group_3__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23119:1: ( ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23120:1: ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23120:1: ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23121:1: ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23122:1: ( rule__ProtocolLayer__AlternativeNamesAssignment_3_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23122:2: rule__ProtocolLayer__AlternativeNamesAssignment_3_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__AlternativeNamesAssignment_3_2_in_rule__ProtocolLayer__Group_3__2__Impl45804);
+            rule__ProtocolLayer__AlternativeNamesAssignment_3_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__2__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23132:1: rule__ProtocolLayer__Group_3__3 : rule__ProtocolLayer__Group_3__3__Impl rule__ProtocolLayer__Group_3__4 ;
+    public final void rule__ProtocolLayer__Group_3__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23136:1: ( rule__ProtocolLayer__Group_3__3__Impl rule__ProtocolLayer__Group_3__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23137:2: rule__ProtocolLayer__Group_3__3__Impl rule__ProtocolLayer__Group_3__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__3__Impl_in_rule__ProtocolLayer__Group_3__345834);
+            rule__ProtocolLayer__Group_3__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__4_in_rule__ProtocolLayer__Group_3__345837);
+            rule__ProtocolLayer__Group_3__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__3"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23144:1: rule__ProtocolLayer__Group_3__3__Impl : ( ( rule__ProtocolLayer__Group_3_3__0 )* ) ;
+    public final void rule__ProtocolLayer__Group_3__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23148:1: ( ( ( rule__ProtocolLayer__Group_3_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23149:1: ( ( rule__ProtocolLayer__Group_3_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23149:1: ( ( rule__ProtocolLayer__Group_3_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23150:1: ( rule__ProtocolLayer__Group_3_3__0 )*
+            {
+             before(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23151:1: ( rule__ProtocolLayer__Group_3_3__0 )*
+            loop115:
+            do {
+                int alt115=2;
+                int LA115_0 = input.LA(1);
+
+                if ( (LA115_0==31) ) {
+                    alt115=1;
+                }
+
+
+                switch (alt115) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23151:2: rule__ProtocolLayer__Group_3_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3_3__0_in_rule__ProtocolLayer__Group_3__3__Impl45864);
+            	    rule__ProtocolLayer__Group_3_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop115;
+                }
+            } while (true);
+
+             after(grammarAccess.getProtocolLayerAccess().getGroup_3_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__3__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23161:1: rule__ProtocolLayer__Group_3__4 : rule__ProtocolLayer__Group_3__4__Impl ;
+    public final void rule__ProtocolLayer__Group_3__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23165:1: ( rule__ProtocolLayer__Group_3__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23166:2: rule__ProtocolLayer__Group_3__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3__4__Impl_in_rule__ProtocolLayer__Group_3__445895);
+            rule__ProtocolLayer__Group_3__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__4"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23172:1: rule__ProtocolLayer__Group_3__4__Impl : ( '}' ) ;
+    public final void rule__ProtocolLayer__Group_3__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23176:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23177:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23177:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23178:1: '}'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__ProtocolLayer__Group_3__4__Impl45923); 
+             after(grammarAccess.getProtocolLayerAccess().getRightCurlyBracketKeyword_3_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3__4__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23201:1: rule__ProtocolLayer__Group_3_3__0 : rule__ProtocolLayer__Group_3_3__0__Impl rule__ProtocolLayer__Group_3_3__1 ;
+    public final void rule__ProtocolLayer__Group_3_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23205:1: ( rule__ProtocolLayer__Group_3_3__0__Impl rule__ProtocolLayer__Group_3_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23206:2: rule__ProtocolLayer__Group_3_3__0__Impl rule__ProtocolLayer__Group_3_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3_3__0__Impl_in_rule__ProtocolLayer__Group_3_3__045964);
+            rule__ProtocolLayer__Group_3_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3_3__1_in_rule__ProtocolLayer__Group_3_3__045967);
+            rule__ProtocolLayer__Group_3_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3_3__0"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23213:1: rule__ProtocolLayer__Group_3_3__0__Impl : ( ',' ) ;
+    public final void rule__ProtocolLayer__Group_3_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23217:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23218:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23218:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23219:1: ','
+            {
+             before(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__ProtocolLayer__Group_3_3__0__Impl45995); 
+             after(grammarAccess.getProtocolLayerAccess().getCommaKeyword_3_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3_3__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23232:1: rule__ProtocolLayer__Group_3_3__1 : rule__ProtocolLayer__Group_3_3__1__Impl ;
+    public final void rule__ProtocolLayer__Group_3_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23236:1: ( rule__ProtocolLayer__Group_3_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23237:2: rule__ProtocolLayer__Group_3_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_3_3__1__Impl_in_rule__ProtocolLayer__Group_3_3__146026);
+            rule__ProtocolLayer__Group_3_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3_3__1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_3_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23243:1: rule__ProtocolLayer__Group_3_3__1__Impl : ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 ) ) ;
+    public final void rule__ProtocolLayer__Group_3_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23247:1: ( ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23248:1: ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23248:1: ( ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23249:1: ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23250:1: ( rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23250:2: rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1_in_rule__ProtocolLayer__Group_3_3__1__Impl46053);
+            rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesAssignment_3_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_3_3__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23264:1: rule__ProtocolLayer__Group_6__0 : rule__ProtocolLayer__Group_6__0__Impl rule__ProtocolLayer__Group_6__1 ;
+    public final void rule__ProtocolLayer__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23268:1: ( rule__ProtocolLayer__Group_6__0__Impl rule__ProtocolLayer__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23269:2: rule__ProtocolLayer__Group_6__0__Impl rule__ProtocolLayer__Group_6__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_6__0__Impl_in_rule__ProtocolLayer__Group_6__046087);
+            rule__ProtocolLayer__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_6__1_in_rule__ProtocolLayer__Group_6__046090);
+            rule__ProtocolLayer__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_6__0"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23276:1: rule__ProtocolLayer__Group_6__0__Impl : ( 'isCarriedBy' ) ;
+    public final void rule__ProtocolLayer__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23280:1: ( ( 'isCarriedBy' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23281:1: ( 'isCarriedBy' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23281:1: ( 'isCarriedBy' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23282:1: 'isCarriedBy'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); 
+            match(input,141,FollowSets002.FOLLOW_141_in_rule__ProtocolLayer__Group_6__0__Impl46118); 
+             after(grammarAccess.getProtocolLayerAccess().getIsCarriedByKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23295:1: rule__ProtocolLayer__Group_6__1 : rule__ProtocolLayer__Group_6__1__Impl ;
+    public final void rule__ProtocolLayer__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23299:1: ( rule__ProtocolLayer__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23300:2: rule__ProtocolLayer__Group_6__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_6__1__Impl_in_rule__ProtocolLayer__Group_6__146149);
+            rule__ProtocolLayer__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_6__1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23306:1: rule__ProtocolLayer__Group_6__1__Impl : ( ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 ) ) ;
+    public final void rule__ProtocolLayer__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23310:1: ( ( ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23311:1: ( ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23311:1: ( ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23312:1: ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23313:1: ( rule__ProtocolLayer__IsCarriedByAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23313:2: rule__ProtocolLayer__IsCarriedByAssignment_6_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__IsCarriedByAssignment_6_1_in_rule__ProtocolLayer__Group_6__1__Impl46176);
+            rule__ProtocolLayer__IsCarriedByAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getIsCarriedByAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23327:1: rule__ProtocolLayer__Group_7__0 : rule__ProtocolLayer__Group_7__0__Impl rule__ProtocolLayer__Group_7__1 ;
+    public final void rule__ProtocolLayer__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23331:1: ( rule__ProtocolLayer__Group_7__0__Impl rule__ProtocolLayer__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23332:2: rule__ProtocolLayer__Group_7__0__Impl rule__ProtocolLayer__Group_7__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_7__0__Impl_in_rule__ProtocolLayer__Group_7__046210);
+            rule__ProtocolLayer__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_7__1_in_rule__ProtocolLayer__Group_7__046213);
+            rule__ProtocolLayer__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_7__0"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23339:1: rule__ProtocolLayer__Group_7__0__Impl : ( 'carries' ) ;
+    public final void rule__ProtocolLayer__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23343:1: ( ( 'carries' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23344:1: ( 'carries' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23344:1: ( 'carries' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23345:1: 'carries'
+            {
+             before(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); 
+            match(input,142,FollowSets002.FOLLOW_142_in_rule__ProtocolLayer__Group_7__0__Impl46241); 
+             after(grammarAccess.getProtocolLayerAccess().getCarriesKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23358:1: rule__ProtocolLayer__Group_7__1 : rule__ProtocolLayer__Group_7__1__Impl ;
+    public final void rule__ProtocolLayer__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23362:1: ( rule__ProtocolLayer__Group_7__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23363:2: rule__ProtocolLayer__Group_7__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__Group_7__1__Impl_in_rule__ProtocolLayer__Group_7__146272);
+            rule__ProtocolLayer__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_7__1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23369:1: rule__ProtocolLayer__Group_7__1__Impl : ( ( rule__ProtocolLayer__CarriesAssignment_7_1 ) ) ;
+    public final void rule__ProtocolLayer__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23373:1: ( ( ( rule__ProtocolLayer__CarriesAssignment_7_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23374:1: ( ( rule__ProtocolLayer__CarriesAssignment_7_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23374:1: ( ( rule__ProtocolLayer__CarriesAssignment_7_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23375:1: ( rule__ProtocolLayer__CarriesAssignment_7_1 )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23376:1: ( rule__ProtocolLayer__CarriesAssignment_7_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23376:2: rule__ProtocolLayer__CarriesAssignment_7_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__ProtocolLayer__CarriesAssignment_7_1_in_rule__ProtocolLayer__Group_7__1__Impl46299);
+            rule__ProtocolLayer__CarriesAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getCarriesAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23390:1: rule__Route__Group__0 : rule__Route__Group__0__Impl rule__Route__Group__1 ;
+    public final void rule__Route__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23394:1: ( rule__Route__Group__0__Impl rule__Route__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23395:2: rule__Route__Group__0__Impl rule__Route__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__0__Impl_in_rule__Route__Group__046333);
+            rule__Route__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__1_in_rule__Route__Group__046336);
+            rule__Route__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__0"
+
+
+    // $ANTLR start "rule__Route__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23402:1: rule__Route__Group__0__Impl : ( 'Route' ) ;
+    public final void rule__Route__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23406:1: ( ( 'Route' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23407:1: ( 'Route' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23407:1: ( 'Route' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23408:1: 'Route'
+            {
+             before(grammarAccess.getRouteAccess().getRouteKeyword_0()); 
+            match(input,143,FollowSets002.FOLLOW_143_in_rule__Route__Group__0__Impl46364); 
+             after(grammarAccess.getRouteAccess().getRouteKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23421:1: rule__Route__Group__1 : rule__Route__Group__1__Impl rule__Route__Group__2 ;
+    public final void rule__Route__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23425:1: ( rule__Route__Group__1__Impl rule__Route__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23426:2: rule__Route__Group__1__Impl rule__Route__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__1__Impl_in_rule__Route__Group__146395);
+            rule__Route__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__2_in_rule__Route__Group__146398);
+            rule__Route__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__1"
+
+
+    // $ANTLR start "rule__Route__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23433:1: rule__Route__Group__1__Impl : ( ( rule__Route__IdAssignment_1 ) ) ;
+    public final void rule__Route__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23437:1: ( ( ( rule__Route__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23438:1: ( ( rule__Route__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23438:1: ( ( rule__Route__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23439:1: ( rule__Route__IdAssignment_1 )
+            {
+             before(grammarAccess.getRouteAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23440:1: ( rule__Route__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23440:2: rule__Route__IdAssignment_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__IdAssignment_1_in_rule__Route__Group__1__Impl46425);
+            rule__Route__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23450:1: rule__Route__Group__2 : rule__Route__Group__2__Impl rule__Route__Group__3 ;
+    public final void rule__Route__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23454:1: ( rule__Route__Group__2__Impl rule__Route__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23455:2: rule__Route__Group__2__Impl rule__Route__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__2__Impl_in_rule__Route__Group__246455);
+            rule__Route__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__3_in_rule__Route__Group__246458);
+            rule__Route__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__2"
+
+
+    // $ANTLR start "rule__Route__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23462:1: rule__Route__Group__2__Impl : ( '{' ) ;
+    public final void rule__Route__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23466:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23467:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23467:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23468:1: '{'
+            {
+             before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__Route__Group__2__Impl46486); 
+             after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23481:1: rule__Route__Group__3 : rule__Route__Group__3__Impl rule__Route__Group__4 ;
+    public final void rule__Route__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23485:1: ( rule__Route__Group__3__Impl rule__Route__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23486:2: rule__Route__Group__3__Impl rule__Route__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__3__Impl_in_rule__Route__Group__346517);
+            rule__Route__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__4_in_rule__Route__Group__346520);
+            rule__Route__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__3"
+
+
+    // $ANTLR start "rule__Route__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23493:1: rule__Route__Group__3__Impl : ( 'name' ) ;
+    public final void rule__Route__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23497:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23498:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23498:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23499:1: 'name'
+            {
+             before(grammarAccess.getRouteAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets002.FOLLOW_65_in_rule__Route__Group__3__Impl46548); 
+             after(grammarAccess.getRouteAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23512:1: rule__Route__Group__4 : rule__Route__Group__4__Impl rule__Route__Group__5 ;
+    public final void rule__Route__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23516:1: ( rule__Route__Group__4__Impl rule__Route__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23517:2: rule__Route__Group__4__Impl rule__Route__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__4__Impl_in_rule__Route__Group__446579);
+            rule__Route__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__5_in_rule__Route__Group__446582);
+            rule__Route__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__4"
+
+
+    // $ANTLR start "rule__Route__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23524:1: rule__Route__Group__4__Impl : ( ( rule__Route__NameAssignment_4 ) ) ;
+    public final void rule__Route__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23528:1: ( ( ( rule__Route__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23529:1: ( ( rule__Route__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23529:1: ( ( rule__Route__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23530:1: ( rule__Route__NameAssignment_4 )
+            {
+             before(grammarAccess.getRouteAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23531:1: ( rule__Route__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23531:2: rule__Route__NameAssignment_4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__NameAssignment_4_in_rule__Route__Group__4__Impl46609);
+            rule__Route__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23541:1: rule__Route__Group__5 : rule__Route__Group__5__Impl rule__Route__Group__6 ;
+    public final void rule__Route__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23545:1: ( rule__Route__Group__5__Impl rule__Route__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23546:2: rule__Route__Group__5__Impl rule__Route__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__5__Impl_in_rule__Route__Group__546639);
+            rule__Route__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__6_in_rule__Route__Group__546642);
+            rule__Route__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__5"
+
+
+    // $ANTLR start "rule__Route__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23553:1: rule__Route__Group__5__Impl : ( ( rule__Route__Group_5__0 )? ) ;
+    public final void rule__Route__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23557:1: ( ( ( rule__Route__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23558:1: ( ( rule__Route__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23558:1: ( ( rule__Route__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23559:1: ( rule__Route__Group_5__0 )?
+            {
+             before(grammarAccess.getRouteAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23560:1: ( rule__Route__Group_5__0 )?
+            int alt116=2;
+            int LA116_0 = input.LA(1);
+
+            if ( (LA116_0==67) ) {
+                alt116=1;
+            }
+            switch (alt116) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23560:2: rule__Route__Group_5__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__0_in_rule__Route__Group__5__Impl46669);
+                    rule__Route__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRouteAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23570:1: rule__Route__Group__6 : rule__Route__Group__6__Impl rule__Route__Group__7 ;
+    public final void rule__Route__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23574:1: ( rule__Route__Group__6__Impl rule__Route__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23575:2: rule__Route__Group__6__Impl rule__Route__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__6__Impl_in_rule__Route__Group__646700);
+            rule__Route__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__7_in_rule__Route__Group__646703);
+            rule__Route__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__6"
+
+
+    // $ANTLR start "rule__Route__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23582:1: rule__Route__Group__6__Impl : ( ( rule__Route__Group_6__0 )? ) ;
+    public final void rule__Route__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23586:1: ( ( ( rule__Route__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23587:1: ( ( rule__Route__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23587:1: ( ( rule__Route__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23588:1: ( rule__Route__Group_6__0 )?
+            {
+             before(grammarAccess.getRouteAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23589:1: ( rule__Route__Group_6__0 )?
+            int alt117=2;
+            int LA117_0 = input.LA(1);
+
+            if ( (LA117_0==146) ) {
+                alt117=1;
+            }
+            switch (alt117) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23589:2: rule__Route__Group_6__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Route__Group_6__0_in_rule__Route__Group__6__Impl46730);
+                    rule__Route__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRouteAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23599:1: rule__Route__Group__7 : rule__Route__Group__7__Impl rule__Route__Group__8 ;
+    public final void rule__Route__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23603:1: ( rule__Route__Group__7__Impl rule__Route__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23604:2: rule__Route__Group__7__Impl rule__Route__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__7__Impl_in_rule__Route__Group__746761);
+            rule__Route__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__8_in_rule__Route__Group__746764);
+            rule__Route__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__7"
+
+
+    // $ANTLR start "rule__Route__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23611:1: rule__Route__Group__7__Impl : ( 'start' ) ;
+    public final void rule__Route__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23615:1: ( ( 'start' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23616:1: ( 'start' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23616:1: ( 'start' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23617:1: 'start'
+            {
+             before(grammarAccess.getRouteAccess().getStartKeyword_7()); 
+            match(input,144,FollowSets002.FOLLOW_144_in_rule__Route__Group__7__Impl46792); 
+             after(grammarAccess.getRouteAccess().getStartKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23630:1: rule__Route__Group__8 : rule__Route__Group__8__Impl rule__Route__Group__9 ;
+    public final void rule__Route__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23634:1: ( rule__Route__Group__8__Impl rule__Route__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23635:2: rule__Route__Group__8__Impl rule__Route__Group__9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__8__Impl_in_rule__Route__Group__846823);
+            rule__Route__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__9_in_rule__Route__Group__846826);
+            rule__Route__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__8"
+
+
+    // $ANTLR start "rule__Route__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23642:1: rule__Route__Group__8__Impl : ( ( rule__Route__StartAssignment_8 ) ) ;
+    public final void rule__Route__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23646:1: ( ( ( rule__Route__StartAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23647:1: ( ( rule__Route__StartAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23647:1: ( ( rule__Route__StartAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23648:1: ( rule__Route__StartAssignment_8 )
+            {
+             before(grammarAccess.getRouteAccess().getStartAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23649:1: ( rule__Route__StartAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23649:2: rule__Route__StartAssignment_8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__StartAssignment_8_in_rule__Route__Group__8__Impl46853);
+            rule__Route__StartAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getStartAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23659:1: rule__Route__Group__9 : rule__Route__Group__9__Impl rule__Route__Group__10 ;
+    public final void rule__Route__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23663:1: ( rule__Route__Group__9__Impl rule__Route__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23664:2: rule__Route__Group__9__Impl rule__Route__Group__10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__9__Impl_in_rule__Route__Group__946883);
+            rule__Route__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__10_in_rule__Route__Group__946886);
+            rule__Route__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__9"
+
+
+    // $ANTLR start "rule__Route__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23671:1: rule__Route__Group__9__Impl : ( 'end' ) ;
+    public final void rule__Route__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23675:1: ( ( 'end' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23676:1: ( 'end' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23676:1: ( 'end' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23677:1: 'end'
+            {
+             before(grammarAccess.getRouteAccess().getEndKeyword_9()); 
+            match(input,145,FollowSets002.FOLLOW_145_in_rule__Route__Group__9__Impl46914); 
+             after(grammarAccess.getRouteAccess().getEndKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23690:1: rule__Route__Group__10 : rule__Route__Group__10__Impl rule__Route__Group__11 ;
+    public final void rule__Route__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23694:1: ( rule__Route__Group__10__Impl rule__Route__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23695:2: rule__Route__Group__10__Impl rule__Route__Group__11
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__10__Impl_in_rule__Route__Group__1046945);
+            rule__Route__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__11_in_rule__Route__Group__1046948);
+            rule__Route__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__10"
+
+
+    // $ANTLR start "rule__Route__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23702:1: rule__Route__Group__10__Impl : ( ( rule__Route__EndAssignment_10 ) ) ;
+    public final void rule__Route__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23706:1: ( ( ( rule__Route__EndAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23707:1: ( ( rule__Route__EndAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23707:1: ( ( rule__Route__EndAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23708:1: ( rule__Route__EndAssignment_10 )
+            {
+             before(grammarAccess.getRouteAccess().getEndAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23709:1: ( rule__Route__EndAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23709:2: rule__Route__EndAssignment_10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__EndAssignment_10_in_rule__Route__Group__10__Impl46975);
+            rule__Route__EndAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getEndAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23719:1: rule__Route__Group__11 : rule__Route__Group__11__Impl rule__Route__Group__12 ;
+    public final void rule__Route__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23723:1: ( rule__Route__Group__11__Impl rule__Route__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23724:2: rule__Route__Group__11__Impl rule__Route__Group__12
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__11__Impl_in_rule__Route__Group__1147005);
+            rule__Route__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__12_in_rule__Route__Group__1147008);
+            rule__Route__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__11"
+
+
+    // $ANTLR start "rule__Route__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23731:1: rule__Route__Group__11__Impl : ( ( rule__Route__Group_11__0 )? ) ;
+    public final void rule__Route__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23735:1: ( ( ( rule__Route__Group_11__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23736:1: ( ( rule__Route__Group_11__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23736:1: ( ( rule__Route__Group_11__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23737:1: ( rule__Route__Group_11__0 )?
+            {
+             before(grammarAccess.getRouteAccess().getGroup_11()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23738:1: ( rule__Route__Group_11__0 )?
+            int alt118=2;
+            int LA118_0 = input.LA(1);
+
+            if ( (LA118_0==147) ) {
+                alt118=1;
+            }
+            switch (alt118) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23738:2: rule__Route__Group_11__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Route__Group_11__0_in_rule__Route__Group__11__Impl47035);
+                    rule__Route__Group_11__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getRouteAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Route__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23748:1: rule__Route__Group__12 : rule__Route__Group__12__Impl ;
+    public final void rule__Route__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23752:1: ( rule__Route__Group__12__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23753:2: rule__Route__Group__12__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group__12__Impl_in_rule__Route__Group__1247066);
+            rule__Route__Group__12__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__12"
+
+
+    // $ANTLR start "rule__Route__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23759:1: rule__Route__Group__12__Impl : ( '}' ) ;
+    public final void rule__Route__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23763:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23764:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23764:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23765:1: '}'
+            {
+             before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__Route__Group__12__Impl47094); 
+             after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group__12__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23804:1: rule__Route__Group_5__0 : rule__Route__Group_5__0__Impl rule__Route__Group_5__1 ;
+    public final void rule__Route__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23808:1: ( rule__Route__Group_5__0__Impl rule__Route__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23809:2: rule__Route__Group_5__0__Impl rule__Route__Group_5__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__0__Impl_in_rule__Route__Group_5__047151);
+            rule__Route__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__1_in_rule__Route__Group_5__047154);
+            rule__Route__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__0"
+
+
+    // $ANTLR start "rule__Route__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23816:1: rule__Route__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__Route__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23820:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23821:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23821:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23822:1: 'alternativeNames'
+            {
+             before(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__Route__Group_5__0__Impl47182); 
+             after(grammarAccess.getRouteAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23835:1: rule__Route__Group_5__1 : rule__Route__Group_5__1__Impl rule__Route__Group_5__2 ;
+    public final void rule__Route__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23839:1: ( rule__Route__Group_5__1__Impl rule__Route__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23840:2: rule__Route__Group_5__1__Impl rule__Route__Group_5__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__1__Impl_in_rule__Route__Group_5__147213);
+            rule__Route__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__2_in_rule__Route__Group_5__147216);
+            rule__Route__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__1"
+
+
+    // $ANTLR start "rule__Route__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23847:1: rule__Route__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__Route__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23851:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23852:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23852:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23853:1: '{'
+            {
+             before(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__Route__Group_5__1__Impl47244); 
+             after(grammarAccess.getRouteAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23866:1: rule__Route__Group_5__2 : rule__Route__Group_5__2__Impl rule__Route__Group_5__3 ;
+    public final void rule__Route__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23870:1: ( rule__Route__Group_5__2__Impl rule__Route__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23871:2: rule__Route__Group_5__2__Impl rule__Route__Group_5__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__2__Impl_in_rule__Route__Group_5__247275);
+            rule__Route__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__3_in_rule__Route__Group_5__247278);
+            rule__Route__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__2"
+
+
+    // $ANTLR start "rule__Route__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23878:1: rule__Route__Group_5__2__Impl : ( ( rule__Route__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__Route__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23882:1: ( ( ( rule__Route__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23883:1: ( ( rule__Route__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23883:1: ( ( rule__Route__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23884:1: ( rule__Route__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23885:1: ( rule__Route__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23885:2: rule__Route__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__AlternativeNamesAssignment_5_2_in_rule__Route__Group_5__2__Impl47305);
+            rule__Route__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23895:1: rule__Route__Group_5__3 : rule__Route__Group_5__3__Impl rule__Route__Group_5__4 ;
+    public final void rule__Route__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23899:1: ( rule__Route__Group_5__3__Impl rule__Route__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23900:2: rule__Route__Group_5__3__Impl rule__Route__Group_5__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__3__Impl_in_rule__Route__Group_5__347335);
+            rule__Route__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__4_in_rule__Route__Group_5__347338);
+            rule__Route__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__3"
+
+
+    // $ANTLR start "rule__Route__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23907:1: rule__Route__Group_5__3__Impl : ( ( rule__Route__Group_5_3__0 )* ) ;
+    public final void rule__Route__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23911:1: ( ( ( rule__Route__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23912:1: ( ( rule__Route__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23912:1: ( ( rule__Route__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23913:1: ( rule__Route__Group_5_3__0 )*
+            {
+             before(grammarAccess.getRouteAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23914:1: ( rule__Route__Group_5_3__0 )*
+            loop119:
+            do {
+                int alt119=2;
+                int LA119_0 = input.LA(1);
+
+                if ( (LA119_0==31) ) {
+                    alt119=1;
+                }
+
+
+                switch (alt119) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23914:2: rule__Route__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5_3__0_in_rule__Route__Group_5__3__Impl47365);
+            	    rule__Route__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop119;
+                }
+            } while (true);
+
+             after(grammarAccess.getRouteAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23924:1: rule__Route__Group_5__4 : rule__Route__Group_5__4__Impl ;
+    public final void rule__Route__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23928:1: ( rule__Route__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23929:2: rule__Route__Group_5__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5__4__Impl_in_rule__Route__Group_5__447396);
+            rule__Route__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__4"
+
+
+    // $ANTLR start "rule__Route__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23935:1: rule__Route__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__Route__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23939:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23940:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23940:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23941:1: '}'
+            {
+             before(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__Route__Group_5__4__Impl47424); 
+             after(grammarAccess.getRouteAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23964:1: rule__Route__Group_5_3__0 : rule__Route__Group_5_3__0__Impl rule__Route__Group_5_3__1 ;
+    public final void rule__Route__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23968:1: ( rule__Route__Group_5_3__0__Impl rule__Route__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23969:2: rule__Route__Group_5_3__0__Impl rule__Route__Group_5_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5_3__0__Impl_in_rule__Route__Group_5_3__047465);
+            rule__Route__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5_3__1_in_rule__Route__Group_5_3__047468);
+            rule__Route__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5_3__0"
+
+
+    // $ANTLR start "rule__Route__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23976:1: rule__Route__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__Route__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23980:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23981:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23981:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23982:1: ','
+            {
+             before(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__Route__Group_5_3__0__Impl47496); 
+             after(grammarAccess.getRouteAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23995:1: rule__Route__Group_5_3__1 : rule__Route__Group_5_3__1__Impl ;
+    public final void rule__Route__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:23999:1: ( rule__Route__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24000:2: rule__Route__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_5_3__1__Impl_in_rule__Route__Group_5_3__147527);
+            rule__Route__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5_3__1"
+
+
+    // $ANTLR start "rule__Route__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24006:1: rule__Route__Group_5_3__1__Impl : ( ( rule__Route__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__Route__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24010:1: ( ( ( rule__Route__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24011:1: ( ( rule__Route__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24011:1: ( ( rule__Route__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24012:1: ( rule__Route__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24013:1: ( rule__Route__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24013:2: rule__Route__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__AlternativeNamesAssignment_5_3_1_in_rule__Route__Group_5_3__1__Impl47554);
+            rule__Route__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24027:1: rule__Route__Group_6__0 : rule__Route__Group_6__0__Impl rule__Route__Group_6__1 ;
+    public final void rule__Route__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24031:1: ( rule__Route__Group_6__0__Impl rule__Route__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24032:2: rule__Route__Group_6__0__Impl rule__Route__Group_6__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_6__0__Impl_in_rule__Route__Group_6__047588);
+            rule__Route__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_6__1_in_rule__Route__Group_6__047591);
+            rule__Route__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_6__0"
+
+
+    // $ANTLR start "rule__Route__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24039:1: rule__Route__Group_6__0__Impl : ( 'numHops' ) ;
+    public final void rule__Route__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24043:1: ( ( 'numHops' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24044:1: ( 'numHops' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24044:1: ( 'numHops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24045:1: 'numHops'
+            {
+             before(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); 
+            match(input,146,FollowSets002.FOLLOW_146_in_rule__Route__Group_6__0__Impl47619); 
+             after(grammarAccess.getRouteAccess().getNumHopsKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24058:1: rule__Route__Group_6__1 : rule__Route__Group_6__1__Impl ;
+    public final void rule__Route__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24062:1: ( rule__Route__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24063:2: rule__Route__Group_6__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_6__1__Impl_in_rule__Route__Group_6__147650);
+            rule__Route__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_6__1"
+
+
+    // $ANTLR start "rule__Route__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24069:1: rule__Route__Group_6__1__Impl : ( ( rule__Route__NumHopsAssignment_6_1 ) ) ;
+    public final void rule__Route__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24073:1: ( ( ( rule__Route__NumHopsAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24074:1: ( ( rule__Route__NumHopsAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24074:1: ( ( rule__Route__NumHopsAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24075:1: ( rule__Route__NumHopsAssignment_6_1 )
+            {
+             before(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24076:1: ( rule__Route__NumHopsAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24076:2: rule__Route__NumHopsAssignment_6_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__NumHopsAssignment_6_1_in_rule__Route__Group_6__1__Impl47677);
+            rule__Route__NumHopsAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getNumHopsAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_11__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24090:1: rule__Route__Group_11__0 : rule__Route__Group_11__0__Impl rule__Route__Group_11__1 ;
+    public final void rule__Route__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24094:1: ( rule__Route__Group_11__0__Impl rule__Route__Group_11__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24095:2: rule__Route__Group_11__0__Impl rule__Route__Group_11__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_11__0__Impl_in_rule__Route__Group_11__047711);
+            rule__Route__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_11__1_in_rule__Route__Group_11__047714);
+            rule__Route__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_11__0"
+
+
+    // $ANTLR start "rule__Route__Group_11__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24102:1: rule__Route__Group_11__0__Impl : ( 'hops' ) ;
+    public final void rule__Route__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24106:1: ( ( 'hops' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24107:1: ( 'hops' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24107:1: ( 'hops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24108:1: 'hops'
+            {
+             before(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); 
+            match(input,147,FollowSets002.FOLLOW_147_in_rule__Route__Group_11__0__Impl47742); 
+             after(grammarAccess.getRouteAccess().getHopsKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__Route__Group_11__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24121:1: rule__Route__Group_11__1 : rule__Route__Group_11__1__Impl ;
+    public final void rule__Route__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24125:1: ( rule__Route__Group_11__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24126:2: rule__Route__Group_11__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__Group_11__1__Impl_in_rule__Route__Group_11__147773);
+            rule__Route__Group_11__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_11__1"
+
+
+    // $ANTLR start "rule__Route__Group_11__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24132:1: rule__Route__Group_11__1__Impl : ( ( rule__Route__HopsAssignment_11_1 ) ) ;
+    public final void rule__Route__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24136:1: ( ( ( rule__Route__HopsAssignment_11_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24137:1: ( ( rule__Route__HopsAssignment_11_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24137:1: ( ( rule__Route__HopsAssignment_11_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24138:1: ( rule__Route__HopsAssignment_11_1 )
+            {
+             before(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24139:1: ( rule__Route__HopsAssignment_11_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24139:2: rule__Route__HopsAssignment_11_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Route__HopsAssignment_11_1_in_rule__Route__Group_11__1__Impl47800);
+            rule__Route__HopsAssignment_11_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getRouteAccess().getHopsAssignment_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24153:1: rule__FlowRoute__Group__0 : rule__FlowRoute__Group__0__Impl rule__FlowRoute__Group__1 ;
+    public final void rule__FlowRoute__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24157:1: ( rule__FlowRoute__Group__0__Impl rule__FlowRoute__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24158:2: rule__FlowRoute__Group__0__Impl rule__FlowRoute__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__0__Impl_in_rule__FlowRoute__Group__047834);
+            rule__FlowRoute__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__1_in_rule__FlowRoute__Group__047837);
+            rule__FlowRoute__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__0"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24165:1: rule__FlowRoute__Group__0__Impl : ( 'FlowRoute' ) ;
+    public final void rule__FlowRoute__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24169:1: ( ( 'FlowRoute' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24170:1: ( 'FlowRoute' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24170:1: ( 'FlowRoute' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24171:1: 'FlowRoute'
+            {
+             before(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); 
+            match(input,148,FollowSets002.FOLLOW_148_in_rule__FlowRoute__Group__0__Impl47865); 
+             after(grammarAccess.getFlowRouteAccess().getFlowRouteKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__0__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24184:1: rule__FlowRoute__Group__1 : rule__FlowRoute__Group__1__Impl rule__FlowRoute__Group__2 ;
+    public final void rule__FlowRoute__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24188:1: ( rule__FlowRoute__Group__1__Impl rule__FlowRoute__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24189:2: rule__FlowRoute__Group__1__Impl rule__FlowRoute__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__1__Impl_in_rule__FlowRoute__Group__147896);
+            rule__FlowRoute__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__2_in_rule__FlowRoute__Group__147899);
+            rule__FlowRoute__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__1"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24196:1: rule__FlowRoute__Group__1__Impl : ( ( rule__FlowRoute__IdAssignment_1 ) ) ;
+    public final void rule__FlowRoute__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24200:1: ( ( ( rule__FlowRoute__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24201:1: ( ( rule__FlowRoute__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24201:1: ( ( rule__FlowRoute__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24202:1: ( rule__FlowRoute__IdAssignment_1 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24203:1: ( rule__FlowRoute__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24203:2: rule__FlowRoute__IdAssignment_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__IdAssignment_1_in_rule__FlowRoute__Group__1__Impl47926);
+            rule__FlowRoute__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__1__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24213:1: rule__FlowRoute__Group__2 : rule__FlowRoute__Group__2__Impl rule__FlowRoute__Group__3 ;
+    public final void rule__FlowRoute__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24217:1: ( rule__FlowRoute__Group__2__Impl rule__FlowRoute__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24218:2: rule__FlowRoute__Group__2__Impl rule__FlowRoute__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__2__Impl_in_rule__FlowRoute__Group__247956);
+            rule__FlowRoute__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__3_in_rule__FlowRoute__Group__247959);
+            rule__FlowRoute__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__2"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24225:1: rule__FlowRoute__Group__2__Impl : ( '{' ) ;
+    public final void rule__FlowRoute__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24229:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24230:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24230:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24231:1: '{'
+            {
+             before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__FlowRoute__Group__2__Impl47987); 
+             after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__2__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24244:1: rule__FlowRoute__Group__3 : rule__FlowRoute__Group__3__Impl rule__FlowRoute__Group__4 ;
+    public final void rule__FlowRoute__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24248:1: ( rule__FlowRoute__Group__3__Impl rule__FlowRoute__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24249:2: rule__FlowRoute__Group__3__Impl rule__FlowRoute__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__3__Impl_in_rule__FlowRoute__Group__348018);
+            rule__FlowRoute__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__4_in_rule__FlowRoute__Group__348021);
+            rule__FlowRoute__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__3"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24256:1: rule__FlowRoute__Group__3__Impl : ( 'name' ) ;
+    public final void rule__FlowRoute__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24260:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24261:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24261:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24262:1: 'name'
+            {
+             before(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets002.FOLLOW_65_in_rule__FlowRoute__Group__3__Impl48049); 
+             after(grammarAccess.getFlowRouteAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__3__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24275:1: rule__FlowRoute__Group__4 : rule__FlowRoute__Group__4__Impl rule__FlowRoute__Group__5 ;
+    public final void rule__FlowRoute__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24279:1: ( rule__FlowRoute__Group__4__Impl rule__FlowRoute__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24280:2: rule__FlowRoute__Group__4__Impl rule__FlowRoute__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__4__Impl_in_rule__FlowRoute__Group__448080);
+            rule__FlowRoute__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__5_in_rule__FlowRoute__Group__448083);
+            rule__FlowRoute__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__4"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24287:1: rule__FlowRoute__Group__4__Impl : ( ( rule__FlowRoute__NameAssignment_4 ) ) ;
+    public final void rule__FlowRoute__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24291:1: ( ( ( rule__FlowRoute__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24292:1: ( ( rule__FlowRoute__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24292:1: ( ( rule__FlowRoute__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24293:1: ( rule__FlowRoute__NameAssignment_4 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24294:1: ( rule__FlowRoute__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24294:2: rule__FlowRoute__NameAssignment_4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__NameAssignment_4_in_rule__FlowRoute__Group__4__Impl48110);
+            rule__FlowRoute__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__4__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24304:1: rule__FlowRoute__Group__5 : rule__FlowRoute__Group__5__Impl rule__FlowRoute__Group__6 ;
+    public final void rule__FlowRoute__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24308:1: ( rule__FlowRoute__Group__5__Impl rule__FlowRoute__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24309:2: rule__FlowRoute__Group__5__Impl rule__FlowRoute__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__5__Impl_in_rule__FlowRoute__Group__548140);
+            rule__FlowRoute__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__6_in_rule__FlowRoute__Group__548143);
+            rule__FlowRoute__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__5"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24316:1: rule__FlowRoute__Group__5__Impl : ( ( rule__FlowRoute__Group_5__0 )? ) ;
+    public final void rule__FlowRoute__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24320:1: ( ( ( rule__FlowRoute__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24321:1: ( ( rule__FlowRoute__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24321:1: ( ( rule__FlowRoute__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24322:1: ( rule__FlowRoute__Group_5__0 )?
+            {
+             before(grammarAccess.getFlowRouteAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24323:1: ( rule__FlowRoute__Group_5__0 )?
+            int alt120=2;
+            int LA120_0 = input.LA(1);
+
+            if ( (LA120_0==67) ) {
+                alt120=1;
+            }
+            switch (alt120) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24323:2: rule__FlowRoute__Group_5__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__0_in_rule__FlowRoute__Group__5__Impl48170);
+                    rule__FlowRoute__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__5__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24333:1: rule__FlowRoute__Group__6 : rule__FlowRoute__Group__6__Impl rule__FlowRoute__Group__7 ;
+    public final void rule__FlowRoute__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24337:1: ( rule__FlowRoute__Group__6__Impl rule__FlowRoute__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24338:2: rule__FlowRoute__Group__6__Impl rule__FlowRoute__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__6__Impl_in_rule__FlowRoute__Group__648201);
+            rule__FlowRoute__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__7_in_rule__FlowRoute__Group__648204);
+            rule__FlowRoute__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__6"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24345:1: rule__FlowRoute__Group__6__Impl : ( ( rule__FlowRoute__Group_6__0 )? ) ;
+    public final void rule__FlowRoute__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24349:1: ( ( ( rule__FlowRoute__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24350:1: ( ( rule__FlowRoute__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24350:1: ( ( rule__FlowRoute__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24351:1: ( rule__FlowRoute__Group_6__0 )?
+            {
+             before(grammarAccess.getFlowRouteAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24352:1: ( rule__FlowRoute__Group_6__0 )?
+            int alt121=2;
+            int LA121_0 = input.LA(1);
+
+            if ( (LA121_0==146) ) {
+                alt121=1;
+            }
+            switch (alt121) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24352:2: rule__FlowRoute__Group_6__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_6__0_in_rule__FlowRoute__Group__6__Impl48231);
+                    rule__FlowRoute__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__6__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24362:1: rule__FlowRoute__Group__7 : rule__FlowRoute__Group__7__Impl rule__FlowRoute__Group__8 ;
+    public final void rule__FlowRoute__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24366:1: ( rule__FlowRoute__Group__7__Impl rule__FlowRoute__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24367:2: rule__FlowRoute__Group__7__Impl rule__FlowRoute__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__7__Impl_in_rule__FlowRoute__Group__748262);
+            rule__FlowRoute__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__8_in_rule__FlowRoute__Group__748265);
+            rule__FlowRoute__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__7"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24374:1: rule__FlowRoute__Group__7__Impl : ( 'flow' ) ;
+    public final void rule__FlowRoute__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24378:1: ( ( 'flow' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24379:1: ( 'flow' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24379:1: ( 'flow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24380:1: 'flow'
+            {
+             before(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); 
+            match(input,117,FollowSets002.FOLLOW_117_in_rule__FlowRoute__Group__7__Impl48293); 
+             after(grammarAccess.getFlowRouteAccess().getFlowKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__7__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24393:1: rule__FlowRoute__Group__8 : rule__FlowRoute__Group__8__Impl rule__FlowRoute__Group__9 ;
+    public final void rule__FlowRoute__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24397:1: ( rule__FlowRoute__Group__8__Impl rule__FlowRoute__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24398:2: rule__FlowRoute__Group__8__Impl rule__FlowRoute__Group__9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__8__Impl_in_rule__FlowRoute__Group__848324);
+            rule__FlowRoute__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__9_in_rule__FlowRoute__Group__848327);
+            rule__FlowRoute__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__8"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24405:1: rule__FlowRoute__Group__8__Impl : ( ( rule__FlowRoute__FlowAssignment_8 ) ) ;
+    public final void rule__FlowRoute__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24409:1: ( ( ( rule__FlowRoute__FlowAssignment_8 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24410:1: ( ( rule__FlowRoute__FlowAssignment_8 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24410:1: ( ( rule__FlowRoute__FlowAssignment_8 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24411:1: ( rule__FlowRoute__FlowAssignment_8 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24412:1: ( rule__FlowRoute__FlowAssignment_8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24412:2: rule__FlowRoute__FlowAssignment_8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__FlowAssignment_8_in_rule__FlowRoute__Group__8__Impl48354);
+            rule__FlowRoute__FlowAssignment_8();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getFlowAssignment_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__8__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24422:1: rule__FlowRoute__Group__9 : rule__FlowRoute__Group__9__Impl rule__FlowRoute__Group__10 ;
+    public final void rule__FlowRoute__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24426:1: ( rule__FlowRoute__Group__9__Impl rule__FlowRoute__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24427:2: rule__FlowRoute__Group__9__Impl rule__FlowRoute__Group__10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__9__Impl_in_rule__FlowRoute__Group__948384);
+            rule__FlowRoute__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__10_in_rule__FlowRoute__Group__948387);
+            rule__FlowRoute__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__9"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24434:1: rule__FlowRoute__Group__9__Impl : ( 'start' ) ;
+    public final void rule__FlowRoute__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24438:1: ( ( 'start' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24439:1: ( 'start' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24439:1: ( 'start' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24440:1: 'start'
+            {
+             before(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); 
+            match(input,144,FollowSets002.FOLLOW_144_in_rule__FlowRoute__Group__9__Impl48415); 
+             after(grammarAccess.getFlowRouteAccess().getStartKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__9__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24453:1: rule__FlowRoute__Group__10 : rule__FlowRoute__Group__10__Impl rule__FlowRoute__Group__11 ;
+    public final void rule__FlowRoute__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24457:1: ( rule__FlowRoute__Group__10__Impl rule__FlowRoute__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24458:2: rule__FlowRoute__Group__10__Impl rule__FlowRoute__Group__11
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__10__Impl_in_rule__FlowRoute__Group__1048446);
+            rule__FlowRoute__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__11_in_rule__FlowRoute__Group__1048449);
+            rule__FlowRoute__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__10"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24465:1: rule__FlowRoute__Group__10__Impl : ( ( rule__FlowRoute__StartAssignment_10 ) ) ;
+    public final void rule__FlowRoute__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24469:1: ( ( ( rule__FlowRoute__StartAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24470:1: ( ( rule__FlowRoute__StartAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24470:1: ( ( rule__FlowRoute__StartAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24471:1: ( rule__FlowRoute__StartAssignment_10 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24472:1: ( rule__FlowRoute__StartAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24472:2: rule__FlowRoute__StartAssignment_10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__StartAssignment_10_in_rule__FlowRoute__Group__10__Impl48476);
+            rule__FlowRoute__StartAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getStartAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__10__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24482:1: rule__FlowRoute__Group__11 : rule__FlowRoute__Group__11__Impl rule__FlowRoute__Group__12 ;
+    public final void rule__FlowRoute__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24486:1: ( rule__FlowRoute__Group__11__Impl rule__FlowRoute__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24487:2: rule__FlowRoute__Group__11__Impl rule__FlowRoute__Group__12
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__11__Impl_in_rule__FlowRoute__Group__1148506);
+            rule__FlowRoute__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__12_in_rule__FlowRoute__Group__1148509);
+            rule__FlowRoute__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__11"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24494:1: rule__FlowRoute__Group__11__Impl : ( 'end' ) ;
+    public final void rule__FlowRoute__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24498:1: ( ( 'end' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24499:1: ( 'end' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24499:1: ( 'end' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24500:1: 'end'
+            {
+             before(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); 
+            match(input,145,FollowSets002.FOLLOW_145_in_rule__FlowRoute__Group__11__Impl48537); 
+             after(grammarAccess.getFlowRouteAccess().getEndKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__11__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24513:1: rule__FlowRoute__Group__12 : rule__FlowRoute__Group__12__Impl rule__FlowRoute__Group__13 ;
+    public final void rule__FlowRoute__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24517:1: ( rule__FlowRoute__Group__12__Impl rule__FlowRoute__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24518:2: rule__FlowRoute__Group__12__Impl rule__FlowRoute__Group__13
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__12__Impl_in_rule__FlowRoute__Group__1248568);
+            rule__FlowRoute__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__13_in_rule__FlowRoute__Group__1248571);
+            rule__FlowRoute__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__12"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24525:1: rule__FlowRoute__Group__12__Impl : ( ( rule__FlowRoute__EndAssignment_12 ) ) ;
+    public final void rule__FlowRoute__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24529:1: ( ( ( rule__FlowRoute__EndAssignment_12 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24530:1: ( ( rule__FlowRoute__EndAssignment_12 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24530:1: ( ( rule__FlowRoute__EndAssignment_12 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24531:1: ( rule__FlowRoute__EndAssignment_12 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24532:1: ( rule__FlowRoute__EndAssignment_12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24532:2: rule__FlowRoute__EndAssignment_12
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__EndAssignment_12_in_rule__FlowRoute__Group__12__Impl48598);
+            rule__FlowRoute__EndAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getEndAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__12__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24542:1: rule__FlowRoute__Group__13 : rule__FlowRoute__Group__13__Impl rule__FlowRoute__Group__14 ;
+    public final void rule__FlowRoute__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24546:1: ( rule__FlowRoute__Group__13__Impl rule__FlowRoute__Group__14 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24547:2: rule__FlowRoute__Group__13__Impl rule__FlowRoute__Group__14
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__13__Impl_in_rule__FlowRoute__Group__1348628);
+            rule__FlowRoute__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__14_in_rule__FlowRoute__Group__1348631);
+            rule__FlowRoute__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__13"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24554:1: rule__FlowRoute__Group__13__Impl : ( ( rule__FlowRoute__Group_13__0 )? ) ;
+    public final void rule__FlowRoute__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24558:1: ( ( ( rule__FlowRoute__Group_13__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24559:1: ( ( rule__FlowRoute__Group_13__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24559:1: ( ( rule__FlowRoute__Group_13__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24560:1: ( rule__FlowRoute__Group_13__0 )?
+            {
+             before(grammarAccess.getFlowRouteAccess().getGroup_13()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24561:1: ( rule__FlowRoute__Group_13__0 )?
+            int alt122=2;
+            int LA122_0 = input.LA(1);
+
+            if ( (LA122_0==147) ) {
+                alt122=1;
+            }
+            switch (alt122) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24561:2: rule__FlowRoute__Group_13__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_13__0_in_rule__FlowRoute__Group__13__Impl48658);
+                    rule__FlowRoute__Group_13__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getGroup_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__13__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__14"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24571:1: rule__FlowRoute__Group__14 : rule__FlowRoute__Group__14__Impl ;
+    public final void rule__FlowRoute__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24575:1: ( rule__FlowRoute__Group__14__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24576:2: rule__FlowRoute__Group__14__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group__14__Impl_in_rule__FlowRoute__Group__1448689);
+            rule__FlowRoute__Group__14__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__14"
+
+
+    // $ANTLR start "rule__FlowRoute__Group__14__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24582:1: rule__FlowRoute__Group__14__Impl : ( '}' ) ;
+    public final void rule__FlowRoute__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24586:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24587:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24587:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24588:1: '}'
+            {
+             before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__FlowRoute__Group__14__Impl48717); 
+             after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group__14__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24631:1: rule__FlowRoute__Group_5__0 : rule__FlowRoute__Group_5__0__Impl rule__FlowRoute__Group_5__1 ;
+    public final void rule__FlowRoute__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24635:1: ( rule__FlowRoute__Group_5__0__Impl rule__FlowRoute__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24636:2: rule__FlowRoute__Group_5__0__Impl rule__FlowRoute__Group_5__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__0__Impl_in_rule__FlowRoute__Group_5__048778);
+            rule__FlowRoute__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__1_in_rule__FlowRoute__Group_5__048781);
+            rule__FlowRoute__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__0"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24643:1: rule__FlowRoute__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__FlowRoute__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24647:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24648:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24648:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24649:1: 'alternativeNames'
+            {
+             before(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__FlowRoute__Group_5__0__Impl48809); 
+             after(grammarAccess.getFlowRouteAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24662:1: rule__FlowRoute__Group_5__1 : rule__FlowRoute__Group_5__1__Impl rule__FlowRoute__Group_5__2 ;
+    public final void rule__FlowRoute__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24666:1: ( rule__FlowRoute__Group_5__1__Impl rule__FlowRoute__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24667:2: rule__FlowRoute__Group_5__1__Impl rule__FlowRoute__Group_5__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__1__Impl_in_rule__FlowRoute__Group_5__148840);
+            rule__FlowRoute__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__2_in_rule__FlowRoute__Group_5__148843);
+            rule__FlowRoute__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__1"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24674:1: rule__FlowRoute__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__FlowRoute__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24678:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24679:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24679:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24680:1: '{'
+            {
+             before(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__FlowRoute__Group_5__1__Impl48871); 
+             after(grammarAccess.getFlowRouteAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24693:1: rule__FlowRoute__Group_5__2 : rule__FlowRoute__Group_5__2__Impl rule__FlowRoute__Group_5__3 ;
+    public final void rule__FlowRoute__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24697:1: ( rule__FlowRoute__Group_5__2__Impl rule__FlowRoute__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24698:2: rule__FlowRoute__Group_5__2__Impl rule__FlowRoute__Group_5__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__2__Impl_in_rule__FlowRoute__Group_5__248902);
+            rule__FlowRoute__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__3_in_rule__FlowRoute__Group_5__248905);
+            rule__FlowRoute__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__2"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24705:1: rule__FlowRoute__Group_5__2__Impl : ( ( rule__FlowRoute__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__FlowRoute__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24709:1: ( ( ( rule__FlowRoute__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24710:1: ( ( rule__FlowRoute__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24710:1: ( ( rule__FlowRoute__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24711:1: ( rule__FlowRoute__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24712:1: ( rule__FlowRoute__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24712:2: rule__FlowRoute__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__AlternativeNamesAssignment_5_2_in_rule__FlowRoute__Group_5__2__Impl48932);
+            rule__FlowRoute__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24722:1: rule__FlowRoute__Group_5__3 : rule__FlowRoute__Group_5__3__Impl rule__FlowRoute__Group_5__4 ;
+    public final void rule__FlowRoute__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24726:1: ( rule__FlowRoute__Group_5__3__Impl rule__FlowRoute__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24727:2: rule__FlowRoute__Group_5__3__Impl rule__FlowRoute__Group_5__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__3__Impl_in_rule__FlowRoute__Group_5__348962);
+            rule__FlowRoute__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__4_in_rule__FlowRoute__Group_5__348965);
+            rule__FlowRoute__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__3"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24734:1: rule__FlowRoute__Group_5__3__Impl : ( ( rule__FlowRoute__Group_5_3__0 )* ) ;
+    public final void rule__FlowRoute__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24738:1: ( ( ( rule__FlowRoute__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24739:1: ( ( rule__FlowRoute__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24739:1: ( ( rule__FlowRoute__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24740:1: ( rule__FlowRoute__Group_5_3__0 )*
+            {
+             before(grammarAccess.getFlowRouteAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24741:1: ( rule__FlowRoute__Group_5_3__0 )*
+            loop123:
+            do {
+                int alt123=2;
+                int LA123_0 = input.LA(1);
+
+                if ( (LA123_0==31) ) {
+                    alt123=1;
+                }
+
+
+                switch (alt123) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24741:2: rule__FlowRoute__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5_3__0_in_rule__FlowRoute__Group_5__3__Impl48992);
+            	    rule__FlowRoute__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop123;
+                }
+            } while (true);
+
+             after(grammarAccess.getFlowRouteAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24751:1: rule__FlowRoute__Group_5__4 : rule__FlowRoute__Group_5__4__Impl ;
+    public final void rule__FlowRoute__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24755:1: ( rule__FlowRoute__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24756:2: rule__FlowRoute__Group_5__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5__4__Impl_in_rule__FlowRoute__Group_5__449023);
+            rule__FlowRoute__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__4"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24762:1: rule__FlowRoute__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__FlowRoute__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24766:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24767:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24767:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24768:1: '}'
+            {
+             before(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__FlowRoute__Group_5__4__Impl49051); 
+             after(grammarAccess.getFlowRouteAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24791:1: rule__FlowRoute__Group_5_3__0 : rule__FlowRoute__Group_5_3__0__Impl rule__FlowRoute__Group_5_3__1 ;
+    public final void rule__FlowRoute__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24795:1: ( rule__FlowRoute__Group_5_3__0__Impl rule__FlowRoute__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24796:2: rule__FlowRoute__Group_5_3__0__Impl rule__FlowRoute__Group_5_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5_3__0__Impl_in_rule__FlowRoute__Group_5_3__049092);
+            rule__FlowRoute__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5_3__1_in_rule__FlowRoute__Group_5_3__049095);
+            rule__FlowRoute__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5_3__0"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24803:1: rule__FlowRoute__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__FlowRoute__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24807:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24808:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24808:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24809:1: ','
+            {
+             before(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__FlowRoute__Group_5_3__0__Impl49123); 
+             after(grammarAccess.getFlowRouteAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24822:1: rule__FlowRoute__Group_5_3__1 : rule__FlowRoute__Group_5_3__1__Impl ;
+    public final void rule__FlowRoute__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24826:1: ( rule__FlowRoute__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24827:2: rule__FlowRoute__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_5_3__1__Impl_in_rule__FlowRoute__Group_5_3__149154);
+            rule__FlowRoute__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5_3__1"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24833:1: rule__FlowRoute__Group_5_3__1__Impl : ( ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__FlowRoute__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24837:1: ( ( ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24838:1: ( ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24838:1: ( ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24839:1: ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24840:1: ( rule__FlowRoute__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24840:2: rule__FlowRoute__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__AlternativeNamesAssignment_5_3_1_in_rule__FlowRoute__Group_5_3__1__Impl49181);
+            rule__FlowRoute__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24854:1: rule__FlowRoute__Group_6__0 : rule__FlowRoute__Group_6__0__Impl rule__FlowRoute__Group_6__1 ;
+    public final void rule__FlowRoute__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24858:1: ( rule__FlowRoute__Group_6__0__Impl rule__FlowRoute__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24859:2: rule__FlowRoute__Group_6__0__Impl rule__FlowRoute__Group_6__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_6__0__Impl_in_rule__FlowRoute__Group_6__049215);
+            rule__FlowRoute__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_6__1_in_rule__FlowRoute__Group_6__049218);
+            rule__FlowRoute__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_6__0"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24866:1: rule__FlowRoute__Group_6__0__Impl : ( 'numHops' ) ;
+    public final void rule__FlowRoute__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24870:1: ( ( 'numHops' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24871:1: ( 'numHops' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24871:1: ( 'numHops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24872:1: 'numHops'
+            {
+             before(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); 
+            match(input,146,FollowSets002.FOLLOW_146_in_rule__FlowRoute__Group_6__0__Impl49246); 
+             after(grammarAccess.getFlowRouteAccess().getNumHopsKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24885:1: rule__FlowRoute__Group_6__1 : rule__FlowRoute__Group_6__1__Impl ;
+    public final void rule__FlowRoute__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24889:1: ( rule__FlowRoute__Group_6__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24890:2: rule__FlowRoute__Group_6__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_6__1__Impl_in_rule__FlowRoute__Group_6__149277);
+            rule__FlowRoute__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_6__1"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24896:1: rule__FlowRoute__Group_6__1__Impl : ( ( rule__FlowRoute__NumHopsAssignment_6_1 ) ) ;
+    public final void rule__FlowRoute__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24900:1: ( ( ( rule__FlowRoute__NumHopsAssignment_6_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24901:1: ( ( rule__FlowRoute__NumHopsAssignment_6_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24901:1: ( ( rule__FlowRoute__NumHopsAssignment_6_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24902:1: ( rule__FlowRoute__NumHopsAssignment_6_1 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24903:1: ( rule__FlowRoute__NumHopsAssignment_6_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24903:2: rule__FlowRoute__NumHopsAssignment_6_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__NumHopsAssignment_6_1_in_rule__FlowRoute__Group_6__1__Impl49304);
+            rule__FlowRoute__NumHopsAssignment_6_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getNumHopsAssignment_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_13__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24917:1: rule__FlowRoute__Group_13__0 : rule__FlowRoute__Group_13__0__Impl rule__FlowRoute__Group_13__1 ;
+    public final void rule__FlowRoute__Group_13__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24921:1: ( rule__FlowRoute__Group_13__0__Impl rule__FlowRoute__Group_13__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24922:2: rule__FlowRoute__Group_13__0__Impl rule__FlowRoute__Group_13__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_13__0__Impl_in_rule__FlowRoute__Group_13__049338);
+            rule__FlowRoute__Group_13__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_13__1_in_rule__FlowRoute__Group_13__049341);
+            rule__FlowRoute__Group_13__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_13__0"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_13__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24929:1: rule__FlowRoute__Group_13__0__Impl : ( 'hops' ) ;
+    public final void rule__FlowRoute__Group_13__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24933:1: ( ( 'hops' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24934:1: ( 'hops' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24934:1: ( 'hops' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24935:1: 'hops'
+            {
+             before(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); 
+            match(input,147,FollowSets002.FOLLOW_147_in_rule__FlowRoute__Group_13__0__Impl49369); 
+             after(grammarAccess.getFlowRouteAccess().getHopsKeyword_13_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_13__0__Impl"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_13__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24948:1: rule__FlowRoute__Group_13__1 : rule__FlowRoute__Group_13__1__Impl ;
+    public final void rule__FlowRoute__Group_13__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24952:1: ( rule__FlowRoute__Group_13__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24953:2: rule__FlowRoute__Group_13__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__Group_13__1__Impl_in_rule__FlowRoute__Group_13__149400);
+            rule__FlowRoute__Group_13__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_13__1"
+
+
+    // $ANTLR start "rule__FlowRoute__Group_13__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24959:1: rule__FlowRoute__Group_13__1__Impl : ( ( rule__FlowRoute__HopsAssignment_13_1 ) ) ;
+    public final void rule__FlowRoute__Group_13__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24963:1: ( ( ( rule__FlowRoute__HopsAssignment_13_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24964:1: ( ( rule__FlowRoute__HopsAssignment_13_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24964:1: ( ( rule__FlowRoute__HopsAssignment_13_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24965:1: ( rule__FlowRoute__HopsAssignment_13_1 )
+            {
+             before(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24966:1: ( rule__FlowRoute__HopsAssignment_13_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24966:2: rule__FlowRoute__HopsAssignment_13_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__FlowRoute__HopsAssignment_13_1_in_rule__FlowRoute__Group_13__1__Impl49427);
+            rule__FlowRoute__HopsAssignment_13_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getHopsAssignment_13_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__Group_13__1__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24980:1: rule__Direction__Group__0 : rule__Direction__Group__0__Impl rule__Direction__Group__1 ;
+    public final void rule__Direction__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24984:1: ( rule__Direction__Group__0__Impl rule__Direction__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24985:2: rule__Direction__Group__0__Impl rule__Direction__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__0__Impl_in_rule__Direction__Group__049461);
+            rule__Direction__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__1_in_rule__Direction__Group__049464);
+            rule__Direction__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__0"
+
+
+    // $ANTLR start "rule__Direction__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24992:1: rule__Direction__Group__0__Impl : ( ( rule__Direction__IsDefaultAssignment_0 )? ) ;
+    public final void rule__Direction__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24996:1: ( ( ( rule__Direction__IsDefaultAssignment_0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24997:1: ( ( rule__Direction__IsDefaultAssignment_0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24997:1: ( ( rule__Direction__IsDefaultAssignment_0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24998:1: ( rule__Direction__IsDefaultAssignment_0 )?
+            {
+             before(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24999:1: ( rule__Direction__IsDefaultAssignment_0 )?
+            int alt124=2;
+            int LA124_0 = input.LA(1);
+
+            if ( (LA124_0==161) ) {
+                alt124=1;
+            }
+            switch (alt124) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:24999:2: rule__Direction__IsDefaultAssignment_0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Direction__IsDefaultAssignment_0_in_rule__Direction__Group__0__Impl49491);
+                    rule__Direction__IsDefaultAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getIsDefaultAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25009:1: rule__Direction__Group__1 : rule__Direction__Group__1__Impl rule__Direction__Group__2 ;
+    public final void rule__Direction__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25013:1: ( rule__Direction__Group__1__Impl rule__Direction__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25014:2: rule__Direction__Group__1__Impl rule__Direction__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__1__Impl_in_rule__Direction__Group__149522);
+            rule__Direction__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__2_in_rule__Direction__Group__149525);
+            rule__Direction__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__1"
+
+
+    // $ANTLR start "rule__Direction__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25021:1: rule__Direction__Group__1__Impl : ( 'Direction' ) ;
+    public final void rule__Direction__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25025:1: ( ( 'Direction' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25026:1: ( 'Direction' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25026:1: ( 'Direction' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25027:1: 'Direction'
+            {
+             before(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); 
+            match(input,149,FollowSets002.FOLLOW_149_in_rule__Direction__Group__1__Impl49553); 
+             after(grammarAccess.getDirectionAccess().getDirectionKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25040:1: rule__Direction__Group__2 : rule__Direction__Group__2__Impl rule__Direction__Group__3 ;
+    public final void rule__Direction__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25044:1: ( rule__Direction__Group__2__Impl rule__Direction__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25045:2: rule__Direction__Group__2__Impl rule__Direction__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__2__Impl_in_rule__Direction__Group__249584);
+            rule__Direction__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__3_in_rule__Direction__Group__249587);
+            rule__Direction__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__2"
+
+
+    // $ANTLR start "rule__Direction__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25052:1: rule__Direction__Group__2__Impl : ( ( rule__Direction__IdAssignment_2 ) ) ;
+    public final void rule__Direction__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25056:1: ( ( ( rule__Direction__IdAssignment_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25057:1: ( ( rule__Direction__IdAssignment_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25057:1: ( ( rule__Direction__IdAssignment_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25058:1: ( rule__Direction__IdAssignment_2 )
+            {
+             before(grammarAccess.getDirectionAccess().getIdAssignment_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25059:1: ( rule__Direction__IdAssignment_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25059:2: rule__Direction__IdAssignment_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__IdAssignment_2_in_rule__Direction__Group__2__Impl49614);
+            rule__Direction__IdAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getIdAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25069:1: rule__Direction__Group__3 : rule__Direction__Group__3__Impl rule__Direction__Group__4 ;
+    public final void rule__Direction__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25073:1: ( rule__Direction__Group__3__Impl rule__Direction__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25074:2: rule__Direction__Group__3__Impl rule__Direction__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__3__Impl_in_rule__Direction__Group__349644);
+            rule__Direction__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__4_in_rule__Direction__Group__349647);
+            rule__Direction__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__3"
+
+
+    // $ANTLR start "rule__Direction__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25081:1: rule__Direction__Group__3__Impl : ( '{' ) ;
+    public final void rule__Direction__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25085:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25086:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25086:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25087:1: '{'
+            {
+             before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__Direction__Group__3__Impl49675); 
+             after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25100:1: rule__Direction__Group__4 : rule__Direction__Group__4__Impl rule__Direction__Group__5 ;
+    public final void rule__Direction__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25104:1: ( rule__Direction__Group__4__Impl rule__Direction__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25105:2: rule__Direction__Group__4__Impl rule__Direction__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__4__Impl_in_rule__Direction__Group__449706);
+            rule__Direction__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__5_in_rule__Direction__Group__449709);
+            rule__Direction__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__4"
+
+
+    // $ANTLR start "rule__Direction__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25112:1: rule__Direction__Group__4__Impl : ( 'name' ) ;
+    public final void rule__Direction__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25116:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25117:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25117:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25118:1: 'name'
+            {
+             before(grammarAccess.getDirectionAccess().getNameKeyword_4()); 
+            match(input,65,FollowSets002.FOLLOW_65_in_rule__Direction__Group__4__Impl49737); 
+             after(grammarAccess.getDirectionAccess().getNameKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25131:1: rule__Direction__Group__5 : rule__Direction__Group__5__Impl rule__Direction__Group__6 ;
+    public final void rule__Direction__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25135:1: ( rule__Direction__Group__5__Impl rule__Direction__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25136:2: rule__Direction__Group__5__Impl rule__Direction__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__5__Impl_in_rule__Direction__Group__549768);
+            rule__Direction__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__6_in_rule__Direction__Group__549771);
+            rule__Direction__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__5"
+
+
+    // $ANTLR start "rule__Direction__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25143:1: rule__Direction__Group__5__Impl : ( ( rule__Direction__NameAssignment_5 ) ) ;
+    public final void rule__Direction__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25147:1: ( ( ( rule__Direction__NameAssignment_5 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25148:1: ( ( rule__Direction__NameAssignment_5 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25148:1: ( ( rule__Direction__NameAssignment_5 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25149:1: ( rule__Direction__NameAssignment_5 )
+            {
+             before(grammarAccess.getDirectionAccess().getNameAssignment_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25150:1: ( rule__Direction__NameAssignment_5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25150:2: rule__Direction__NameAssignment_5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__NameAssignment_5_in_rule__Direction__Group__5__Impl49798);
+            rule__Direction__NameAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getNameAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25160:1: rule__Direction__Group__6 : rule__Direction__Group__6__Impl rule__Direction__Group__7 ;
+    public final void rule__Direction__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25164:1: ( rule__Direction__Group__6__Impl rule__Direction__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25165:2: rule__Direction__Group__6__Impl rule__Direction__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__6__Impl_in_rule__Direction__Group__649828);
+            rule__Direction__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__7_in_rule__Direction__Group__649831);
+            rule__Direction__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__6"
+
+
+    // $ANTLR start "rule__Direction__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25172:1: rule__Direction__Group__6__Impl : ( ( rule__Direction__Group_6__0 )? ) ;
+    public final void rule__Direction__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25176:1: ( ( ( rule__Direction__Group_6__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25177:1: ( ( rule__Direction__Group_6__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25177:1: ( ( rule__Direction__Group_6__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25178:1: ( rule__Direction__Group_6__0 )?
+            {
+             before(grammarAccess.getDirectionAccess().getGroup_6()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25179:1: ( rule__Direction__Group_6__0 )?
+            int alt125=2;
+            int LA125_0 = input.LA(1);
+
+            if ( (LA125_0==67) ) {
+                alt125=1;
+            }
+            switch (alt125) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25179:2: rule__Direction__Group_6__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__0_in_rule__Direction__Group__6__Impl49858);
+                    rule__Direction__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25189:1: rule__Direction__Group__7 : rule__Direction__Group__7__Impl rule__Direction__Group__8 ;
+    public final void rule__Direction__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25193:1: ( rule__Direction__Group__7__Impl rule__Direction__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25194:2: rule__Direction__Group__7__Impl rule__Direction__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__7__Impl_in_rule__Direction__Group__749889);
+            rule__Direction__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__8_in_rule__Direction__Group__749892);
+            rule__Direction__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__7"
+
+
+    // $ANTLR start "rule__Direction__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25201:1: rule__Direction__Group__7__Impl : ( ( rule__Direction__Group_7__0 )? ) ;
+    public final void rule__Direction__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25205:1: ( ( ( rule__Direction__Group_7__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25206:1: ( ( rule__Direction__Group_7__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25206:1: ( ( rule__Direction__Group_7__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25207:1: ( rule__Direction__Group_7__0 )?
+            {
+             before(grammarAccess.getDirectionAccess().getGroup_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25208:1: ( rule__Direction__Group_7__0 )?
+            int alt126=2;
+            int LA126_0 = input.LA(1);
+
+            if ( (LA126_0==152) ) {
+                alt126=1;
+            }
+            switch (alt126) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25208:2: rule__Direction__Group_7__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_7__0_in_rule__Direction__Group__7__Impl49919);
+                    rule__Direction__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25218:1: rule__Direction__Group__8 : rule__Direction__Group__8__Impl rule__Direction__Group__9 ;
+    public final void rule__Direction__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25222:1: ( rule__Direction__Group__8__Impl rule__Direction__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25223:2: rule__Direction__Group__8__Impl rule__Direction__Group__9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__8__Impl_in_rule__Direction__Group__849950);
+            rule__Direction__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__9_in_rule__Direction__Group__849953);
+            rule__Direction__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__8"
+
+
+    // $ANTLR start "rule__Direction__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25230:1: rule__Direction__Group__8__Impl : ( 'onNode' ) ;
+    public final void rule__Direction__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25234:1: ( ( 'onNode' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25235:1: ( 'onNode' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25235:1: ( 'onNode' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25236:1: 'onNode'
+            {
+             before(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); 
+            match(input,150,FollowSets002.FOLLOW_150_in_rule__Direction__Group__8__Impl49981); 
+             after(grammarAccess.getDirectionAccess().getOnNodeKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25249:1: rule__Direction__Group__9 : rule__Direction__Group__9__Impl rule__Direction__Group__10 ;
+    public final void rule__Direction__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25253:1: ( rule__Direction__Group__9__Impl rule__Direction__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25254:2: rule__Direction__Group__9__Impl rule__Direction__Group__10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__9__Impl_in_rule__Direction__Group__950012);
+            rule__Direction__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__10_in_rule__Direction__Group__950015);
+            rule__Direction__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__9"
+
+
+    // $ANTLR start "rule__Direction__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25261:1: rule__Direction__Group__9__Impl : ( ( rule__Direction__OnNodeAssignment_9 ) ) ;
+    public final void rule__Direction__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25265:1: ( ( ( rule__Direction__OnNodeAssignment_9 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25266:1: ( ( rule__Direction__OnNodeAssignment_9 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25266:1: ( ( rule__Direction__OnNodeAssignment_9 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25267:1: ( rule__Direction__OnNodeAssignment_9 )
+            {
+             before(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25268:1: ( rule__Direction__OnNodeAssignment_9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25268:2: rule__Direction__OnNodeAssignment_9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__OnNodeAssignment_9_in_rule__Direction__Group__9__Impl50042);
+            rule__Direction__OnNodeAssignment_9();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getOnNodeAssignment_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25278:1: rule__Direction__Group__10 : rule__Direction__Group__10__Impl rule__Direction__Group__11 ;
+    public final void rule__Direction__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25282:1: ( rule__Direction__Group__10__Impl rule__Direction__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25283:2: rule__Direction__Group__10__Impl rule__Direction__Group__11
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__10__Impl_in_rule__Direction__Group__1050072);
+            rule__Direction__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__11_in_rule__Direction__Group__1050075);
+            rule__Direction__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__10"
+
+
+    // $ANTLR start "rule__Direction__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25290:1: rule__Direction__Group__10__Impl : ( ( rule__Direction__Group_10__0 )? ) ;
+    public final void rule__Direction__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25294:1: ( ( ( rule__Direction__Group_10__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25295:1: ( ( rule__Direction__Group_10__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25295:1: ( ( rule__Direction__Group_10__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25296:1: ( rule__Direction__Group_10__0 )?
+            {
+             before(grammarAccess.getDirectionAccess().getGroup_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25297:1: ( rule__Direction__Group_10__0 )?
+            int alt127=2;
+            int LA127_0 = input.LA(1);
+
+            if ( (LA127_0==117) ) {
+                alt127=1;
+            }
+            switch (alt127) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25297:2: rule__Direction__Group_10__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_10__0_in_rule__Direction__Group__10__Impl50102);
+                    rule__Direction__Group_10__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25307:1: rule__Direction__Group__11 : rule__Direction__Group__11__Impl rule__Direction__Group__12 ;
+    public final void rule__Direction__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25311:1: ( rule__Direction__Group__11__Impl rule__Direction__Group__12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25312:2: rule__Direction__Group__11__Impl rule__Direction__Group__12
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__11__Impl_in_rule__Direction__Group__1150133);
+            rule__Direction__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__12_in_rule__Direction__Group__1150136);
+            rule__Direction__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__11"
+
+
+    // $ANTLR start "rule__Direction__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25319:1: rule__Direction__Group__11__Impl : ( 'via' ) ;
+    public final void rule__Direction__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25323:1: ( ( 'via' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25324:1: ( 'via' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25324:1: ( 'via' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25325:1: 'via'
+            {
+             before(grammarAccess.getDirectionAccess().getViaKeyword_11()); 
+            match(input,151,FollowSets002.FOLLOW_151_in_rule__Direction__Group__11__Impl50164); 
+             after(grammarAccess.getDirectionAccess().getViaKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25338:1: rule__Direction__Group__12 : rule__Direction__Group__12__Impl rule__Direction__Group__13 ;
+    public final void rule__Direction__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25342:1: ( rule__Direction__Group__12__Impl rule__Direction__Group__13 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25343:2: rule__Direction__Group__12__Impl rule__Direction__Group__13
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__12__Impl_in_rule__Direction__Group__1250195);
+            rule__Direction__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__13_in_rule__Direction__Group__1250198);
+            rule__Direction__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__12"
+
+
+    // $ANTLR start "rule__Direction__Group__12__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25350:1: rule__Direction__Group__12__Impl : ( ( rule__Direction__ViaAssignment_12 ) ) ;
+    public final void rule__Direction__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25354:1: ( ( ( rule__Direction__ViaAssignment_12 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25355:1: ( ( rule__Direction__ViaAssignment_12 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25355:1: ( ( rule__Direction__ViaAssignment_12 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25356:1: ( rule__Direction__ViaAssignment_12 )
+            {
+             before(grammarAccess.getDirectionAccess().getViaAssignment_12()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25357:1: ( rule__Direction__ViaAssignment_12 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25357:2: rule__Direction__ViaAssignment_12
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__ViaAssignment_12_in_rule__Direction__Group__12__Impl50225);
+            rule__Direction__ViaAssignment_12();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getViaAssignment_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__12__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group__13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25367:1: rule__Direction__Group__13 : rule__Direction__Group__13__Impl ;
+    public final void rule__Direction__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25371:1: ( rule__Direction__Group__13__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25372:2: rule__Direction__Group__13__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group__13__Impl_in_rule__Direction__Group__1350255);
+            rule__Direction__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__13"
+
+
+    // $ANTLR start "rule__Direction__Group__13__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25378:1: rule__Direction__Group__13__Impl : ( '}' ) ;
+    public final void rule__Direction__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25382:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25383:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25383:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25384:1: '}'
+            {
+             before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__Direction__Group__13__Impl50283); 
+             after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group__13__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25425:1: rule__Direction__Group_6__0 : rule__Direction__Group_6__0__Impl rule__Direction__Group_6__1 ;
+    public final void rule__Direction__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25429:1: ( rule__Direction__Group_6__0__Impl rule__Direction__Group_6__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25430:2: rule__Direction__Group_6__0__Impl rule__Direction__Group_6__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__0__Impl_in_rule__Direction__Group_6__050342);
+            rule__Direction__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__1_in_rule__Direction__Group_6__050345);
+            rule__Direction__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__0"
+
+
+    // $ANTLR start "rule__Direction__Group_6__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25437:1: rule__Direction__Group_6__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__Direction__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25441:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25442:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25442:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25443:1: 'alternativeNames'
+            {
+             before(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__Direction__Group_6__0__Impl50373); 
+             after(grammarAccess.getDirectionAccess().getAlternativeNamesKeyword_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25456:1: rule__Direction__Group_6__1 : rule__Direction__Group_6__1__Impl rule__Direction__Group_6__2 ;
+    public final void rule__Direction__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25460:1: ( rule__Direction__Group_6__1__Impl rule__Direction__Group_6__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25461:2: rule__Direction__Group_6__1__Impl rule__Direction__Group_6__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__1__Impl_in_rule__Direction__Group_6__150404);
+            rule__Direction__Group_6__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__2_in_rule__Direction__Group_6__150407);
+            rule__Direction__Group_6__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__1"
+
+
+    // $ANTLR start "rule__Direction__Group_6__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25468:1: rule__Direction__Group_6__1__Impl : ( '{' ) ;
+    public final void rule__Direction__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25472:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25473:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25473:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25474:1: '{'
+            {
+             before(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__Direction__Group_6__1__Impl50435); 
+             after(grammarAccess.getDirectionAccess().getLeftCurlyBracketKeyword_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25487:1: rule__Direction__Group_6__2 : rule__Direction__Group_6__2__Impl rule__Direction__Group_6__3 ;
+    public final void rule__Direction__Group_6__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25491:1: ( rule__Direction__Group_6__2__Impl rule__Direction__Group_6__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25492:2: rule__Direction__Group_6__2__Impl rule__Direction__Group_6__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__2__Impl_in_rule__Direction__Group_6__250466);
+            rule__Direction__Group_6__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__3_in_rule__Direction__Group_6__250469);
+            rule__Direction__Group_6__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__2"
+
+
+    // $ANTLR start "rule__Direction__Group_6__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25499:1: rule__Direction__Group_6__2__Impl : ( ( rule__Direction__AlternativeNamesAssignment_6_2 ) ) ;
+    public final void rule__Direction__Group_6__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25503:1: ( ( ( rule__Direction__AlternativeNamesAssignment_6_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25504:1: ( ( rule__Direction__AlternativeNamesAssignment_6_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25504:1: ( ( rule__Direction__AlternativeNamesAssignment_6_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25505:1: ( rule__Direction__AlternativeNamesAssignment_6_2 )
+            {
+             before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25506:1: ( rule__Direction__AlternativeNamesAssignment_6_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25506:2: rule__Direction__AlternativeNamesAssignment_6_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__AlternativeNamesAssignment_6_2_in_rule__Direction__Group_6__2__Impl50496);
+            rule__Direction__AlternativeNamesAssignment_6_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__2__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25516:1: rule__Direction__Group_6__3 : rule__Direction__Group_6__3__Impl rule__Direction__Group_6__4 ;
+    public final void rule__Direction__Group_6__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25520:1: ( rule__Direction__Group_6__3__Impl rule__Direction__Group_6__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25521:2: rule__Direction__Group_6__3__Impl rule__Direction__Group_6__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__3__Impl_in_rule__Direction__Group_6__350526);
+            rule__Direction__Group_6__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__4_in_rule__Direction__Group_6__350529);
+            rule__Direction__Group_6__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__3"
+
+
+    // $ANTLR start "rule__Direction__Group_6__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25528:1: rule__Direction__Group_6__3__Impl : ( ( rule__Direction__Group_6_3__0 )* ) ;
+    public final void rule__Direction__Group_6__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25532:1: ( ( ( rule__Direction__Group_6_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25533:1: ( ( rule__Direction__Group_6_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25533:1: ( ( rule__Direction__Group_6_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25534:1: ( rule__Direction__Group_6_3__0 )*
+            {
+             before(grammarAccess.getDirectionAccess().getGroup_6_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25535:1: ( rule__Direction__Group_6_3__0 )*
+            loop128:
+            do {
+                int alt128=2;
+                int LA128_0 = input.LA(1);
+
+                if ( (LA128_0==31) ) {
+                    alt128=1;
+                }
+
+
+                switch (alt128) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25535:2: rule__Direction__Group_6_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6_3__0_in_rule__Direction__Group_6__3__Impl50556);
+            	    rule__Direction__Group_6_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop128;
+                }
+            } while (true);
+
+             after(grammarAccess.getDirectionAccess().getGroup_6_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__3__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25545:1: rule__Direction__Group_6__4 : rule__Direction__Group_6__4__Impl ;
+    public final void rule__Direction__Group_6__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25549:1: ( rule__Direction__Group_6__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25550:2: rule__Direction__Group_6__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6__4__Impl_in_rule__Direction__Group_6__450587);
+            rule__Direction__Group_6__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__4"
+
+
+    // $ANTLR start "rule__Direction__Group_6__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25556:1: rule__Direction__Group_6__4__Impl : ( '}' ) ;
+    public final void rule__Direction__Group_6__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25560:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25561:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25561:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25562:1: '}'
+            {
+             before(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__Direction__Group_6__4__Impl50615); 
+             after(grammarAccess.getDirectionAccess().getRightCurlyBracketKeyword_6_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6__4__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25585:1: rule__Direction__Group_6_3__0 : rule__Direction__Group_6_3__0__Impl rule__Direction__Group_6_3__1 ;
+    public final void rule__Direction__Group_6_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25589:1: ( rule__Direction__Group_6_3__0__Impl rule__Direction__Group_6_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25590:2: rule__Direction__Group_6_3__0__Impl rule__Direction__Group_6_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6_3__0__Impl_in_rule__Direction__Group_6_3__050656);
+            rule__Direction__Group_6_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6_3__1_in_rule__Direction__Group_6_3__050659);
+            rule__Direction__Group_6_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6_3__0"
+
+
+    // $ANTLR start "rule__Direction__Group_6_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25597:1: rule__Direction__Group_6_3__0__Impl : ( ',' ) ;
+    public final void rule__Direction__Group_6_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25601:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25602:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25602:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25603:1: ','
+            {
+             before(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__Direction__Group_6_3__0__Impl50687); 
+             after(grammarAccess.getDirectionAccess().getCommaKeyword_6_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6_3__0__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_6_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25616:1: rule__Direction__Group_6_3__1 : rule__Direction__Group_6_3__1__Impl ;
+    public final void rule__Direction__Group_6_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25620:1: ( rule__Direction__Group_6_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25621:2: rule__Direction__Group_6_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_6_3__1__Impl_in_rule__Direction__Group_6_3__150718);
+            rule__Direction__Group_6_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6_3__1"
+
+
+    // $ANTLR start "rule__Direction__Group_6_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25627:1: rule__Direction__Group_6_3__1__Impl : ( ( rule__Direction__AlternativeNamesAssignment_6_3_1 ) ) ;
+    public final void rule__Direction__Group_6_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25631:1: ( ( ( rule__Direction__AlternativeNamesAssignment_6_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25632:1: ( ( rule__Direction__AlternativeNamesAssignment_6_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25632:1: ( ( rule__Direction__AlternativeNamesAssignment_6_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25633:1: ( rule__Direction__AlternativeNamesAssignment_6_3_1 )
+            {
+             before(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25634:1: ( rule__Direction__AlternativeNamesAssignment_6_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25634:2: rule__Direction__AlternativeNamesAssignment_6_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__AlternativeNamesAssignment_6_3_1_in_rule__Direction__Group_6_3__1__Impl50745);
+            rule__Direction__AlternativeNamesAssignment_6_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getAlternativeNamesAssignment_6_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_6_3__1__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_7__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25648:1: rule__Direction__Group_7__0 : rule__Direction__Group_7__0__Impl rule__Direction__Group_7__1 ;
+    public final void rule__Direction__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25652:1: ( rule__Direction__Group_7__0__Impl rule__Direction__Group_7__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25653:2: rule__Direction__Group_7__0__Impl rule__Direction__Group_7__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_7__0__Impl_in_rule__Direction__Group_7__050779);
+            rule__Direction__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_7__1_in_rule__Direction__Group_7__050782);
+            rule__Direction__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_7__0"
+
+
+    // $ANTLR start "rule__Direction__Group_7__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25660:1: rule__Direction__Group_7__0__Impl : ( 'distance' ) ;
+    public final void rule__Direction__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25664:1: ( ( 'distance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25665:1: ( 'distance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25665:1: ( 'distance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25666:1: 'distance'
+            {
+             before(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); 
+            match(input,152,FollowSets002.FOLLOW_152_in_rule__Direction__Group_7__0__Impl50810); 
+             after(grammarAccess.getDirectionAccess().getDistanceKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_7__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25679:1: rule__Direction__Group_7__1 : rule__Direction__Group_7__1__Impl ;
+    public final void rule__Direction__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25683:1: ( rule__Direction__Group_7__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25684:2: rule__Direction__Group_7__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_7__1__Impl_in_rule__Direction__Group_7__150841);
+            rule__Direction__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_7__1"
+
+
+    // $ANTLR start "rule__Direction__Group_7__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25690:1: rule__Direction__Group_7__1__Impl : ( ( rule__Direction__DistanceAssignment_7_1 ) ) ;
+    public final void rule__Direction__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25694:1: ( ( ( rule__Direction__DistanceAssignment_7_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25695:1: ( ( rule__Direction__DistanceAssignment_7_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25695:1: ( ( rule__Direction__DistanceAssignment_7_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25696:1: ( rule__Direction__DistanceAssignment_7_1 )
+            {
+             before(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25697:1: ( rule__Direction__DistanceAssignment_7_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25697:2: rule__Direction__DistanceAssignment_7_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__DistanceAssignment_7_1_in_rule__Direction__Group_7__1__Impl50868);
+            rule__Direction__DistanceAssignment_7_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getDistanceAssignment_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_10__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25711:1: rule__Direction__Group_10__0 : rule__Direction__Group_10__0__Impl rule__Direction__Group_10__1 ;
+    public final void rule__Direction__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25715:1: ( rule__Direction__Group_10__0__Impl rule__Direction__Group_10__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25716:2: rule__Direction__Group_10__0__Impl rule__Direction__Group_10__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_10__0__Impl_in_rule__Direction__Group_10__050902);
+            rule__Direction__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_10__1_in_rule__Direction__Group_10__050905);
+            rule__Direction__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_10__0"
+
+
+    // $ANTLR start "rule__Direction__Group_10__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25723:1: rule__Direction__Group_10__0__Impl : ( 'flow' ) ;
+    public final void rule__Direction__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25727:1: ( ( 'flow' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25728:1: ( 'flow' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25728:1: ( 'flow' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25729:1: 'flow'
+            {
+             before(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); 
+            match(input,117,FollowSets002.FOLLOW_117_in_rule__Direction__Group_10__0__Impl50933); 
+             after(grammarAccess.getDirectionAccess().getFlowKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__Direction__Group_10__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25742:1: rule__Direction__Group_10__1 : rule__Direction__Group_10__1__Impl ;
+    public final void rule__Direction__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25746:1: ( rule__Direction__Group_10__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25747:2: rule__Direction__Group_10__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__Group_10__1__Impl_in_rule__Direction__Group_10__150964);
+            rule__Direction__Group_10__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_10__1"
+
+
+    // $ANTLR start "rule__Direction__Group_10__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25753:1: rule__Direction__Group_10__1__Impl : ( ( rule__Direction__FlowAssignment_10_1 ) ) ;
+    public final void rule__Direction__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25757:1: ( ( ( rule__Direction__FlowAssignment_10_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25758:1: ( ( rule__Direction__FlowAssignment_10_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25758:1: ( ( rule__Direction__FlowAssignment_10_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25759:1: ( rule__Direction__FlowAssignment_10_1 )
+            {
+             before(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25760:1: ( rule__Direction__FlowAssignment_10_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25760:2: rule__Direction__FlowAssignment_10_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Direction__FlowAssignment_10_1_in_rule__Direction__Group_10__1__Impl50991);
+            rule__Direction__FlowAssignment_10_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getFlowAssignment_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25774:1: rule__Hop__Group__0 : rule__Hop__Group__0__Impl rule__Hop__Group__1 ;
+    public final void rule__Hop__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25778:1: ( rule__Hop__Group__0__Impl rule__Hop__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25779:2: rule__Hop__Group__0__Impl rule__Hop__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__0__Impl_in_rule__Hop__Group__051025);
+            rule__Hop__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__1_in_rule__Hop__Group__051028);
+            rule__Hop__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__0"
+
+
+    // $ANTLR start "rule__Hop__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25786:1: rule__Hop__Group__0__Impl : ( 'Hop' ) ;
+    public final void rule__Hop__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25790:1: ( ( 'Hop' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25791:1: ( 'Hop' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25791:1: ( 'Hop' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25792:1: 'Hop'
+            {
+             before(grammarAccess.getHopAccess().getHopKeyword_0()); 
+            match(input,153,FollowSets002.FOLLOW_153_in_rule__Hop__Group__0__Impl51056); 
+             after(grammarAccess.getHopAccess().getHopKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25805:1: rule__Hop__Group__1 : rule__Hop__Group__1__Impl rule__Hop__Group__2 ;
+    public final void rule__Hop__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25809:1: ( rule__Hop__Group__1__Impl rule__Hop__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25810:2: rule__Hop__Group__1__Impl rule__Hop__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__1__Impl_in_rule__Hop__Group__151087);
+            rule__Hop__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__2_in_rule__Hop__Group__151090);
+            rule__Hop__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__1"
+
+
+    // $ANTLR start "rule__Hop__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25817:1: rule__Hop__Group__1__Impl : ( '{' ) ;
+    public final void rule__Hop__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25821:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25822:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25822:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25823:1: '{'
+            {
+             before(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__Hop__Group__1__Impl51118); 
+             after(grammarAccess.getHopAccess().getLeftCurlyBracketKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25836:1: rule__Hop__Group__2 : rule__Hop__Group__2__Impl rule__Hop__Group__3 ;
+    public final void rule__Hop__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25840:1: ( rule__Hop__Group__2__Impl rule__Hop__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25841:2: rule__Hop__Group__2__Impl rule__Hop__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__2__Impl_in_rule__Hop__Group__251149);
+            rule__Hop__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__3_in_rule__Hop__Group__251152);
+            rule__Hop__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__2"
+
+
+    // $ANTLR start "rule__Hop__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25848:1: rule__Hop__Group__2__Impl : ( 'interfaceref' ) ;
+    public final void rule__Hop__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25852:1: ( ( 'interfaceref' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25853:1: ( 'interfaceref' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25853:1: ( 'interfaceref' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25854:1: 'interfaceref'
+            {
+             before(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); 
+            match(input,154,FollowSets002.FOLLOW_154_in_rule__Hop__Group__2__Impl51180); 
+             after(grammarAccess.getHopAccess().getInterfacerefKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25867:1: rule__Hop__Group__3 : rule__Hop__Group__3__Impl rule__Hop__Group__4 ;
+    public final void rule__Hop__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25871:1: ( rule__Hop__Group__3__Impl rule__Hop__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25872:2: rule__Hop__Group__3__Impl rule__Hop__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__3__Impl_in_rule__Hop__Group__351211);
+            rule__Hop__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__4_in_rule__Hop__Group__351214);
+            rule__Hop__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__3"
+
+
+    // $ANTLR start "rule__Hop__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25879:1: rule__Hop__Group__3__Impl : ( ( rule__Hop__InterfacerefAssignment_3 ) ) ;
+    public final void rule__Hop__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25883:1: ( ( ( rule__Hop__InterfacerefAssignment_3 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25884:1: ( ( rule__Hop__InterfacerefAssignment_3 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25884:1: ( ( rule__Hop__InterfacerefAssignment_3 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25885:1: ( rule__Hop__InterfacerefAssignment_3 )
+            {
+             before(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25886:1: ( rule__Hop__InterfacerefAssignment_3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25886:2: rule__Hop__InterfacerefAssignment_3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__InterfacerefAssignment_3_in_rule__Hop__Group__3__Impl51241);
+            rule__Hop__InterfacerefAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getHopAccess().getInterfacerefAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25896:1: rule__Hop__Group__4 : rule__Hop__Group__4__Impl rule__Hop__Group__5 ;
+    public final void rule__Hop__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25900:1: ( rule__Hop__Group__4__Impl rule__Hop__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25901:2: rule__Hop__Group__4__Impl rule__Hop__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__4__Impl_in_rule__Hop__Group__451271);
+            rule__Hop__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__5_in_rule__Hop__Group__451274);
+            rule__Hop__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__4"
+
+
+    // $ANTLR start "rule__Hop__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25908:1: rule__Hop__Group__4__Impl : ( ( rule__Hop__Group_4__0 )? ) ;
+    public final void rule__Hop__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25912:1: ( ( ( rule__Hop__Group_4__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25913:1: ( ( rule__Hop__Group_4__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25913:1: ( ( rule__Hop__Group_4__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25914:1: ( rule__Hop__Group_4__0 )?
+            {
+             before(grammarAccess.getHopAccess().getGroup_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25915:1: ( rule__Hop__Group_4__0 )?
+            int alt129=2;
+            int LA129_0 = input.LA(1);
+
+            if ( (LA129_0==155) ) {
+                alt129=1;
+            }
+            switch (alt129) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25915:2: rule__Hop__Group_4__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__Hop__Group_4__0_in_rule__Hop__Group__4__Impl51301);
+                    rule__Hop__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getHopAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25925:1: rule__Hop__Group__5 : rule__Hop__Group__5__Impl ;
+    public final void rule__Hop__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25929:1: ( rule__Hop__Group__5__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25930:2: rule__Hop__Group__5__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group__5__Impl_in_rule__Hop__Group__551332);
+            rule__Hop__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__5"
+
+
+    // $ANTLR start "rule__Hop__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25936:1: rule__Hop__Group__5__Impl : ( '}' ) ;
+    public final void rule__Hop__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25940:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25941:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25941:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25942:1: '}'
+            {
+             before(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__Hop__Group__5__Impl51360); 
+             after(grammarAccess.getHopAccess().getRightCurlyBracketKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group_4__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25967:1: rule__Hop__Group_4__0 : rule__Hop__Group_4__0__Impl rule__Hop__Group_4__1 ;
+    public final void rule__Hop__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25971:1: ( rule__Hop__Group_4__0__Impl rule__Hop__Group_4__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25972:2: rule__Hop__Group_4__0__Impl rule__Hop__Group_4__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group_4__0__Impl_in_rule__Hop__Group_4__051403);
+            rule__Hop__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group_4__1_in_rule__Hop__Group_4__051406);
+            rule__Hop__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group_4__0"
+
+
+    // $ANTLR start "rule__Hop__Group_4__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25979:1: rule__Hop__Group_4__0__Impl : ( 'nextHop' ) ;
+    public final void rule__Hop__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25983:1: ( ( 'nextHop' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25984:1: ( 'nextHop' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25984:1: ( 'nextHop' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25985:1: 'nextHop'
+            {
+             before(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); 
+            match(input,155,FollowSets002.FOLLOW_155_in_rule__Hop__Group_4__0__Impl51434); 
+             after(grammarAccess.getHopAccess().getNextHopKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Hop__Group_4__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:25998:1: rule__Hop__Group_4__1 : rule__Hop__Group_4__1__Impl ;
+    public final void rule__Hop__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26002:1: ( rule__Hop__Group_4__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26003:2: rule__Hop__Group_4__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__Group_4__1__Impl_in_rule__Hop__Group_4__151465);
+            rule__Hop__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group_4__1"
+
+
+    // $ANTLR start "rule__Hop__Group_4__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26009:1: rule__Hop__Group_4__1__Impl : ( ( rule__Hop__NextHopAssignment_4_1 ) ) ;
+    public final void rule__Hop__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26013:1: ( ( ( rule__Hop__NextHopAssignment_4_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26014:1: ( ( rule__Hop__NextHopAssignment_4_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26014:1: ( ( rule__Hop__NextHopAssignment_4_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26015:1: ( rule__Hop__NextHopAssignment_4_1 )
+            {
+             before(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26016:1: ( rule__Hop__NextHopAssignment_4_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26016:2: rule__Hop__NextHopAssignment_4_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__Hop__NextHopAssignment_4_1_in_rule__Hop__Group_4__1__Impl51492);
+            rule__Hop__NextHopAssignment_4_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getHopAccess().getNextHopAssignment_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EIntegerObject__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26030:1: rule__EIntegerObject__Group__0 : rule__EIntegerObject__Group__0__Impl rule__EIntegerObject__Group__1 ;
+    public final void rule__EIntegerObject__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26034:1: ( rule__EIntegerObject__Group__0__Impl rule__EIntegerObject__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26035:2: rule__EIntegerObject__Group__0__Impl rule__EIntegerObject__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__EIntegerObject__Group__0__Impl_in_rule__EIntegerObject__Group__051526);
+            rule__EIntegerObject__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__EIntegerObject__Group__1_in_rule__EIntegerObject__Group__051529);
+            rule__EIntegerObject__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EIntegerObject__Group__0"
+
+
+    // $ANTLR start "rule__EIntegerObject__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26042:1: rule__EIntegerObject__Group__0__Impl : ( ( '-' )? ) ;
+    public final void rule__EIntegerObject__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26046:1: ( ( ( '-' )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26047:1: ( ( '-' )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26047:1: ( ( '-' )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26048:1: ( '-' )?
+            {
+             before(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26049:1: ( '-' )?
+            int alt130=2;
+            int LA130_0 = input.LA(1);
+
+            if ( (LA130_0==87) ) {
+                alt130=1;
+            }
+            switch (alt130) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26050:2: '-'
+                    {
+                    match(input,87,FollowSets002.FOLLOW_87_in_rule__EIntegerObject__Group__0__Impl51558); 
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEIntegerObjectAccess().getHyphenMinusKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EIntegerObject__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EIntegerObject__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26061:1: rule__EIntegerObject__Group__1 : rule__EIntegerObject__Group__1__Impl ;
+    public final void rule__EIntegerObject__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26065:1: ( rule__EIntegerObject__Group__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26066:2: rule__EIntegerObject__Group__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__EIntegerObject__Group__1__Impl_in_rule__EIntegerObject__Group__151591);
+            rule__EIntegerObject__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EIntegerObject__Group__1"
+
+
+    // $ANTLR start "rule__EIntegerObject__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26072:1: rule__EIntegerObject__Group__1__Impl : ( RULE_INT ) ;
+    public final void rule__EIntegerObject__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26076:1: ( ( RULE_INT ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26077:1: ( RULE_INT )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26077:1: ( RULE_INT )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26078:1: RULE_INT
+            {
+             before(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); 
+            match(input,RULE_INT,FollowSets002.FOLLOW_RULE_INT_in_rule__EIntegerObject__Group__1__Impl51618); 
+             after(grammarAccess.getEIntegerObjectAccess().getINTTerminalRuleCall_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EIntegerObject__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26093:1: rule__PhysicalNetworkInterface__Group__0 : rule__PhysicalNetworkInterface__Group__0__Impl rule__PhysicalNetworkInterface__Group__1 ;
+    public final void rule__PhysicalNetworkInterface__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26097:1: ( rule__PhysicalNetworkInterface__Group__0__Impl rule__PhysicalNetworkInterface__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26098:2: rule__PhysicalNetworkInterface__Group__0__Impl rule__PhysicalNetworkInterface__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__0__Impl_in_rule__PhysicalNetworkInterface__Group__051651);
+            rule__PhysicalNetworkInterface__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__1_in_rule__PhysicalNetworkInterface__Group__051654);
+            rule__PhysicalNetworkInterface__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26105:1: rule__PhysicalNetworkInterface__Group__0__Impl : ( 'PhysicalNetworkInterface' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26109:1: ( ( 'PhysicalNetworkInterface' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26110:1: ( 'PhysicalNetworkInterface' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26110:1: ( 'PhysicalNetworkInterface' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26111:1: 'PhysicalNetworkInterface'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); 
+            match(input,156,FollowSets002.FOLLOW_156_in_rule__PhysicalNetworkInterface__Group__0__Impl51682); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPhysicalNetworkInterfaceKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26124:1: rule__PhysicalNetworkInterface__Group__1 : rule__PhysicalNetworkInterface__Group__1__Impl rule__PhysicalNetworkInterface__Group__2 ;
+    public final void rule__PhysicalNetworkInterface__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26128:1: ( rule__PhysicalNetworkInterface__Group__1__Impl rule__PhysicalNetworkInterface__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26129:2: rule__PhysicalNetworkInterface__Group__1__Impl rule__PhysicalNetworkInterface__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__1__Impl_in_rule__PhysicalNetworkInterface__Group__151713);
+            rule__PhysicalNetworkInterface__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__2_in_rule__PhysicalNetworkInterface__Group__151716);
+            rule__PhysicalNetworkInterface__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26136:1: rule__PhysicalNetworkInterface__Group__1__Impl : ( ( rule__PhysicalNetworkInterface__IdAssignment_1 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26140:1: ( ( ( rule__PhysicalNetworkInterface__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26141:1: ( ( rule__PhysicalNetworkInterface__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26141:1: ( ( rule__PhysicalNetworkInterface__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26142:1: ( rule__PhysicalNetworkInterface__IdAssignment_1 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26143:1: ( rule__PhysicalNetworkInterface__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26143:2: rule__PhysicalNetworkInterface__IdAssignment_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__IdAssignment_1_in_rule__PhysicalNetworkInterface__Group__1__Impl51743);
+            rule__PhysicalNetworkInterface__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26153:1: rule__PhysicalNetworkInterface__Group__2 : rule__PhysicalNetworkInterface__Group__2__Impl rule__PhysicalNetworkInterface__Group__3 ;
+    public final void rule__PhysicalNetworkInterface__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26157:1: ( rule__PhysicalNetworkInterface__Group__2__Impl rule__PhysicalNetworkInterface__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26158:2: rule__PhysicalNetworkInterface__Group__2__Impl rule__PhysicalNetworkInterface__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__2__Impl_in_rule__PhysicalNetworkInterface__Group__251773);
+            rule__PhysicalNetworkInterface__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__3_in_rule__PhysicalNetworkInterface__Group__251776);
+            rule__PhysicalNetworkInterface__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26165:1: rule__PhysicalNetworkInterface__Group__2__Impl : ( '{' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26169:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26170:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26170:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26171:1: '{'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__PhysicalNetworkInterface__Group__2__Impl51804); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26184:1: rule__PhysicalNetworkInterface__Group__3 : rule__PhysicalNetworkInterface__Group__3__Impl rule__PhysicalNetworkInterface__Group__4 ;
+    public final void rule__PhysicalNetworkInterface__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26188:1: ( rule__PhysicalNetworkInterface__Group__3__Impl rule__PhysicalNetworkInterface__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26189:2: rule__PhysicalNetworkInterface__Group__3__Impl rule__PhysicalNetworkInterface__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__3__Impl_in_rule__PhysicalNetworkInterface__Group__351835);
+            rule__PhysicalNetworkInterface__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__4_in_rule__PhysicalNetworkInterface__Group__351838);
+            rule__PhysicalNetworkInterface__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__3"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26196:1: rule__PhysicalNetworkInterface__Group__3__Impl : ( 'name' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26200:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26201:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26201:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26202:1: 'name'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets002.FOLLOW_65_in_rule__PhysicalNetworkInterface__Group__3__Impl51866); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26215:1: rule__PhysicalNetworkInterface__Group__4 : rule__PhysicalNetworkInterface__Group__4__Impl rule__PhysicalNetworkInterface__Group__5 ;
+    public final void rule__PhysicalNetworkInterface__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26219:1: ( rule__PhysicalNetworkInterface__Group__4__Impl rule__PhysicalNetworkInterface__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26220:2: rule__PhysicalNetworkInterface__Group__4__Impl rule__PhysicalNetworkInterface__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__4__Impl_in_rule__PhysicalNetworkInterface__Group__451897);
+            rule__PhysicalNetworkInterface__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__5_in_rule__PhysicalNetworkInterface__Group__451900);
+            rule__PhysicalNetworkInterface__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26227:1: rule__PhysicalNetworkInterface__Group__4__Impl : ( ( rule__PhysicalNetworkInterface__NameAssignment_4 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26231:1: ( ( ( rule__PhysicalNetworkInterface__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26232:1: ( ( rule__PhysicalNetworkInterface__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26232:1: ( ( rule__PhysicalNetworkInterface__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26233:1: ( rule__PhysicalNetworkInterface__NameAssignment_4 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26234:1: ( rule__PhysicalNetworkInterface__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26234:2: rule__PhysicalNetworkInterface__NameAssignment_4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__NameAssignment_4_in_rule__PhysicalNetworkInterface__Group__4__Impl51927);
+            rule__PhysicalNetworkInterface__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26244:1: rule__PhysicalNetworkInterface__Group__5 : rule__PhysicalNetworkInterface__Group__5__Impl rule__PhysicalNetworkInterface__Group__6 ;
+    public final void rule__PhysicalNetworkInterface__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26248:1: ( rule__PhysicalNetworkInterface__Group__5__Impl rule__PhysicalNetworkInterface__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26249:2: rule__PhysicalNetworkInterface__Group__5__Impl rule__PhysicalNetworkInterface__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__5__Impl_in_rule__PhysicalNetworkInterface__Group__551957);
+            rule__PhysicalNetworkInterface__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__6_in_rule__PhysicalNetworkInterface__Group__551960);
+            rule__PhysicalNetworkInterface__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__5"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26256:1: rule__PhysicalNetworkInterface__Group__5__Impl : ( ( rule__PhysicalNetworkInterface__Group_5__0 )? ) ;
+    public final void rule__PhysicalNetworkInterface__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26260:1: ( ( ( rule__PhysicalNetworkInterface__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26261:1: ( ( rule__PhysicalNetworkInterface__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26261:1: ( ( rule__PhysicalNetworkInterface__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26262:1: ( rule__PhysicalNetworkInterface__Group_5__0 )?
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26263:1: ( rule__PhysicalNetworkInterface__Group_5__0 )?
+            int alt131=2;
+            int LA131_0 = input.LA(1);
+
+            if ( (LA131_0==67) ) {
+                alt131=1;
+            }
+            switch (alt131) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26263:2: rule__PhysicalNetworkInterface__Group_5__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__0_in_rule__PhysicalNetworkInterface__Group__5__Impl51987);
+                    rule__PhysicalNetworkInterface__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__5__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26273:1: rule__PhysicalNetworkInterface__Group__6 : rule__PhysicalNetworkInterface__Group__6__Impl rule__PhysicalNetworkInterface__Group__7 ;
+    public final void rule__PhysicalNetworkInterface__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26277:1: ( rule__PhysicalNetworkInterface__Group__6__Impl rule__PhysicalNetworkInterface__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26278:2: rule__PhysicalNetworkInterface__Group__6__Impl rule__PhysicalNetworkInterface__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__6__Impl_in_rule__PhysicalNetworkInterface__Group__652018);
+            rule__PhysicalNetworkInterface__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__7_in_rule__PhysicalNetworkInterface__Group__652021);
+            rule__PhysicalNetworkInterface__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__6"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26285:1: rule__PhysicalNetworkInterface__Group__6__Impl : ( 'usedProtocolStack' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26289:1: ( ( 'usedProtocolStack' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26290:1: ( 'usedProtocolStack' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26290:1: ( 'usedProtocolStack' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26291:1: 'usedProtocolStack'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); 
+            match(input,157,FollowSets002.FOLLOW_157_in_rule__PhysicalNetworkInterface__Group__6__Impl52049); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__6__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26304:1: rule__PhysicalNetworkInterface__Group__7 : rule__PhysicalNetworkInterface__Group__7__Impl rule__PhysicalNetworkInterface__Group__8 ;
+    public final void rule__PhysicalNetworkInterface__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26308:1: ( rule__PhysicalNetworkInterface__Group__7__Impl rule__PhysicalNetworkInterface__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26309:2: rule__PhysicalNetworkInterface__Group__7__Impl rule__PhysicalNetworkInterface__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__7__Impl_in_rule__PhysicalNetworkInterface__Group__752080);
+            rule__PhysicalNetworkInterface__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__8_in_rule__PhysicalNetworkInterface__Group__752083);
+            rule__PhysicalNetworkInterface__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__7"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26316:1: rule__PhysicalNetworkInterface__Group__7__Impl : ( ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26320:1: ( ( ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26321:1: ( ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26321:1: ( ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26322:1: ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26323:1: ( rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26323:2: rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7_in_rule__PhysicalNetworkInterface__Group__7__Impl52110);
+            rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__7__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26333:1: rule__PhysicalNetworkInterface__Group__8 : rule__PhysicalNetworkInterface__Group__8__Impl rule__PhysicalNetworkInterface__Group__9 ;
+    public final void rule__PhysicalNetworkInterface__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26337:1: ( rule__PhysicalNetworkInterface__Group__8__Impl rule__PhysicalNetworkInterface__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26338:2: rule__PhysicalNetworkInterface__Group__8__Impl rule__PhysicalNetworkInterface__Group__9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__8__Impl_in_rule__PhysicalNetworkInterface__Group__852140);
+            rule__PhysicalNetworkInterface__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__9_in_rule__PhysicalNetworkInterface__Group__852143);
+            rule__PhysicalNetworkInterface__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__8"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26345:1: rule__PhysicalNetworkInterface__Group__8__Impl : ( ( rule__PhysicalNetworkInterface__Group_8__0 )? ) ;
+    public final void rule__PhysicalNetworkInterface__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26349:1: ( ( ( rule__PhysicalNetworkInterface__Group_8__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26350:1: ( ( rule__PhysicalNetworkInterface__Group_8__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26350:1: ( ( rule__PhysicalNetworkInterface__Group_8__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26351:1: ( rule__PhysicalNetworkInterface__Group_8__0 )?
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26352:1: ( rule__PhysicalNetworkInterface__Group_8__0 )?
+            int alt132=2;
+            int LA132_0 = input.LA(1);
+
+            if ( (LA132_0==106) ) {
+                alt132=1;
+            }
+            switch (alt132) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26352:2: rule__PhysicalNetworkInterface__Group_8__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__0_in_rule__PhysicalNetworkInterface__Group__8__Impl52170);
+                    rule__PhysicalNetworkInterface__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__8__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26362:1: rule__PhysicalNetworkInterface__Group__9 : rule__PhysicalNetworkInterface__Group__9__Impl rule__PhysicalNetworkInterface__Group__10 ;
+    public final void rule__PhysicalNetworkInterface__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26366:1: ( rule__PhysicalNetworkInterface__Group__9__Impl rule__PhysicalNetworkInterface__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26367:2: rule__PhysicalNetworkInterface__Group__9__Impl rule__PhysicalNetworkInterface__Group__10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__9__Impl_in_rule__PhysicalNetworkInterface__Group__952201);
+            rule__PhysicalNetworkInterface__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__10_in_rule__PhysicalNetworkInterface__Group__952204);
+            rule__PhysicalNetworkInterface__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__9"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26374:1: rule__PhysicalNetworkInterface__Group__9__Impl : ( 'performance' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26378:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26379:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26379:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26380:1: 'performance'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); 
+            match(input,122,FollowSets002.FOLLOW_122_in_rule__PhysicalNetworkInterface__Group__9__Impl52232); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__9__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26393:1: rule__PhysicalNetworkInterface__Group__10 : rule__PhysicalNetworkInterface__Group__10__Impl rule__PhysicalNetworkInterface__Group__11 ;
+    public final void rule__PhysicalNetworkInterface__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26397:1: ( rule__PhysicalNetworkInterface__Group__10__Impl rule__PhysicalNetworkInterface__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26398:2: rule__PhysicalNetworkInterface__Group__10__Impl rule__PhysicalNetworkInterface__Group__11
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__10__Impl_in_rule__PhysicalNetworkInterface__Group__1052263);
+            rule__PhysicalNetworkInterface__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__11_in_rule__PhysicalNetworkInterface__Group__1052266);
+            rule__PhysicalNetworkInterface__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__10"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26405:1: rule__PhysicalNetworkInterface__Group__10__Impl : ( ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26409:1: ( ( ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26410:1: ( ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26410:1: ( ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26411:1: ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26412:1: ( rule__PhysicalNetworkInterface__PerformanceAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26412:2: rule__PhysicalNetworkInterface__PerformanceAssignment_10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__PerformanceAssignment_10_in_rule__PhysicalNetworkInterface__Group__10__Impl52293);
+            rule__PhysicalNetworkInterface__PerformanceAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformanceAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__10__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26422:1: rule__PhysicalNetworkInterface__Group__11 : rule__PhysicalNetworkInterface__Group__11__Impl ;
+    public final void rule__PhysicalNetworkInterface__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26426:1: ( rule__PhysicalNetworkInterface__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26427:2: rule__PhysicalNetworkInterface__Group__11__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group__11__Impl_in_rule__PhysicalNetworkInterface__Group__1152323);
+            rule__PhysicalNetworkInterface__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__11"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26433:1: rule__PhysicalNetworkInterface__Group__11__Impl : ( '}' ) ;
+    public final void rule__PhysicalNetworkInterface__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26437:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26438:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26438:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26439:1: '}'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__PhysicalNetworkInterface__Group__11__Impl52351); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group__11__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26476:1: rule__PhysicalNetworkInterface__Group_5__0 : rule__PhysicalNetworkInterface__Group_5__0__Impl rule__PhysicalNetworkInterface__Group_5__1 ;
+    public final void rule__PhysicalNetworkInterface__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26480:1: ( rule__PhysicalNetworkInterface__Group_5__0__Impl rule__PhysicalNetworkInterface__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26481:2: rule__PhysicalNetworkInterface__Group_5__0__Impl rule__PhysicalNetworkInterface__Group_5__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__0__Impl_in_rule__PhysicalNetworkInterface__Group_5__052406);
+            rule__PhysicalNetworkInterface__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__1_in_rule__PhysicalNetworkInterface__Group_5__052409);
+            rule__PhysicalNetworkInterface__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26488:1: rule__PhysicalNetworkInterface__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26492:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26493:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26493:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26494:1: 'alternativeNames'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__PhysicalNetworkInterface__Group_5__0__Impl52437); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26507:1: rule__PhysicalNetworkInterface__Group_5__1 : rule__PhysicalNetworkInterface__Group_5__1__Impl rule__PhysicalNetworkInterface__Group_5__2 ;
+    public final void rule__PhysicalNetworkInterface__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26511:1: ( rule__PhysicalNetworkInterface__Group_5__1__Impl rule__PhysicalNetworkInterface__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26512:2: rule__PhysicalNetworkInterface__Group_5__1__Impl rule__PhysicalNetworkInterface__Group_5__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__1__Impl_in_rule__PhysicalNetworkInterface__Group_5__152468);
+            rule__PhysicalNetworkInterface__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__2_in_rule__PhysicalNetworkInterface__Group_5__152471);
+            rule__PhysicalNetworkInterface__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26519:1: rule__PhysicalNetworkInterface__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26523:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26524:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26524:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26525:1: '{'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__PhysicalNetworkInterface__Group_5__1__Impl52499); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26538:1: rule__PhysicalNetworkInterface__Group_5__2 : rule__PhysicalNetworkInterface__Group_5__2__Impl rule__PhysicalNetworkInterface__Group_5__3 ;
+    public final void rule__PhysicalNetworkInterface__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26542:1: ( rule__PhysicalNetworkInterface__Group_5__2__Impl rule__PhysicalNetworkInterface__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26543:2: rule__PhysicalNetworkInterface__Group_5__2__Impl rule__PhysicalNetworkInterface__Group_5__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__2__Impl_in_rule__PhysicalNetworkInterface__Group_5__252530);
+            rule__PhysicalNetworkInterface__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__3_in_rule__PhysicalNetworkInterface__Group_5__252533);
+            rule__PhysicalNetworkInterface__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26550:1: rule__PhysicalNetworkInterface__Group_5__2__Impl : ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26554:1: ( ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26555:1: ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26555:1: ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26556:1: ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26557:1: ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26557:2: rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2_in_rule__PhysicalNetworkInterface__Group_5__2__Impl52560);
+            rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26567:1: rule__PhysicalNetworkInterface__Group_5__3 : rule__PhysicalNetworkInterface__Group_5__3__Impl rule__PhysicalNetworkInterface__Group_5__4 ;
+    public final void rule__PhysicalNetworkInterface__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26571:1: ( rule__PhysicalNetworkInterface__Group_5__3__Impl rule__PhysicalNetworkInterface__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26572:2: rule__PhysicalNetworkInterface__Group_5__3__Impl rule__PhysicalNetworkInterface__Group_5__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__3__Impl_in_rule__PhysicalNetworkInterface__Group_5__352590);
+            rule__PhysicalNetworkInterface__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__4_in_rule__PhysicalNetworkInterface__Group_5__352593);
+            rule__PhysicalNetworkInterface__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__3"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26579:1: rule__PhysicalNetworkInterface__Group_5__3__Impl : ( ( rule__PhysicalNetworkInterface__Group_5_3__0 )* ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26583:1: ( ( ( rule__PhysicalNetworkInterface__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26584:1: ( ( rule__PhysicalNetworkInterface__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26584:1: ( ( rule__PhysicalNetworkInterface__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26585:1: ( rule__PhysicalNetworkInterface__Group_5_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26586:1: ( rule__PhysicalNetworkInterface__Group_5_3__0 )*
+            loop133:
+            do {
+                int alt133=2;
+                int LA133_0 = input.LA(1);
+
+                if ( (LA133_0==31) ) {
+                    alt133=1;
+                }
+
+
+                switch (alt133) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26586:2: rule__PhysicalNetworkInterface__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__0_in_rule__PhysicalNetworkInterface__Group_5__3__Impl52620);
+            	    rule__PhysicalNetworkInterface__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop133;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26596:1: rule__PhysicalNetworkInterface__Group_5__4 : rule__PhysicalNetworkInterface__Group_5__4__Impl ;
+    public final void rule__PhysicalNetworkInterface__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26600:1: ( rule__PhysicalNetworkInterface__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26601:2: rule__PhysicalNetworkInterface__Group_5__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5__4__Impl_in_rule__PhysicalNetworkInterface__Group_5__452651);
+            rule__PhysicalNetworkInterface__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26607:1: rule__PhysicalNetworkInterface__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26611:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26612:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26612:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26613:1: '}'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__PhysicalNetworkInterface__Group_5__4__Impl52679); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26636:1: rule__PhysicalNetworkInterface__Group_5_3__0 : rule__PhysicalNetworkInterface__Group_5_3__0__Impl rule__PhysicalNetworkInterface__Group_5_3__1 ;
+    public final void rule__PhysicalNetworkInterface__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26640:1: ( rule__PhysicalNetworkInterface__Group_5_3__0__Impl rule__PhysicalNetworkInterface__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26641:2: rule__PhysicalNetworkInterface__Group_5_3__0__Impl rule__PhysicalNetworkInterface__Group_5_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__0__Impl_in_rule__PhysicalNetworkInterface__Group_5_3__052720);
+            rule__PhysicalNetworkInterface__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__1_in_rule__PhysicalNetworkInterface__Group_5_3__052723);
+            rule__PhysicalNetworkInterface__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26648:1: rule__PhysicalNetworkInterface__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26652:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26653:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26653:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26654:1: ','
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__PhysicalNetworkInterface__Group_5_3__0__Impl52751); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26667:1: rule__PhysicalNetworkInterface__Group_5_3__1 : rule__PhysicalNetworkInterface__Group_5_3__1__Impl ;
+    public final void rule__PhysicalNetworkInterface__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26671:1: ( rule__PhysicalNetworkInterface__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26672:2: rule__PhysicalNetworkInterface__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__1__Impl_in_rule__PhysicalNetworkInterface__Group_5_3__152782);
+            rule__PhysicalNetworkInterface__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26678:1: rule__PhysicalNetworkInterface__Group_5_3__1__Impl : ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26682:1: ( ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26683:1: ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26683:1: ( ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26684:1: ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26685:1: ( rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26685:2: rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalNetworkInterface__Group_5_3__1__Impl52809);
+            rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26699:1: rule__PhysicalNetworkInterface__Group_8__0 : rule__PhysicalNetworkInterface__Group_8__0__Impl rule__PhysicalNetworkInterface__Group_8__1 ;
+    public final void rule__PhysicalNetworkInterface__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26703:1: ( rule__PhysicalNetworkInterface__Group_8__0__Impl rule__PhysicalNetworkInterface__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26704:2: rule__PhysicalNetworkInterface__Group_8__0__Impl rule__PhysicalNetworkInterface__Group_8__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__0__Impl_in_rule__PhysicalNetworkInterface__Group_8__052843);
+            rule__PhysicalNetworkInterface__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__1_in_rule__PhysicalNetworkInterface__Group_8__052846);
+            rule__PhysicalNetworkInterface__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26711:1: rule__PhysicalNetworkInterface__Group_8__0__Impl : ( 'addresses' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26715:1: ( ( 'addresses' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26716:1: ( 'addresses' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26716:1: ( 'addresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26717:1: 'addresses'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); 
+            match(input,106,FollowSets002.FOLLOW_106_in_rule__PhysicalNetworkInterface__Group_8__0__Impl52874); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26730:1: rule__PhysicalNetworkInterface__Group_8__1 : rule__PhysicalNetworkInterface__Group_8__1__Impl rule__PhysicalNetworkInterface__Group_8__2 ;
+    public final void rule__PhysicalNetworkInterface__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26734:1: ( rule__PhysicalNetworkInterface__Group_8__1__Impl rule__PhysicalNetworkInterface__Group_8__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26735:2: rule__PhysicalNetworkInterface__Group_8__1__Impl rule__PhysicalNetworkInterface__Group_8__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__1__Impl_in_rule__PhysicalNetworkInterface__Group_8__152905);
+            rule__PhysicalNetworkInterface__Group_8__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__2_in_rule__PhysicalNetworkInterface__Group_8__152908);
+            rule__PhysicalNetworkInterface__Group_8__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26742:1: rule__PhysicalNetworkInterface__Group_8__1__Impl : ( '{' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26746:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26747:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26747:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26748:1: '{'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__PhysicalNetworkInterface__Group_8__1__Impl52936); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26761:1: rule__PhysicalNetworkInterface__Group_8__2 : rule__PhysicalNetworkInterface__Group_8__2__Impl rule__PhysicalNetworkInterface__Group_8__3 ;
+    public final void rule__PhysicalNetworkInterface__Group_8__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26765:1: ( rule__PhysicalNetworkInterface__Group_8__2__Impl rule__PhysicalNetworkInterface__Group_8__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26766:2: rule__PhysicalNetworkInterface__Group_8__2__Impl rule__PhysicalNetworkInterface__Group_8__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__2__Impl_in_rule__PhysicalNetworkInterface__Group_8__252967);
+            rule__PhysicalNetworkInterface__Group_8__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__3_in_rule__PhysicalNetworkInterface__Group_8__252970);
+            rule__PhysicalNetworkInterface__Group_8__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26773:1: rule__PhysicalNetworkInterface__Group_8__2__Impl : ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26777:1: ( ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26778:1: ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26778:1: ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26779:1: ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26780:1: ( rule__PhysicalNetworkInterface__AddressesAssignment_8_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26780:2: rule__PhysicalNetworkInterface__AddressesAssignment_8_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__AddressesAssignment_8_2_in_rule__PhysicalNetworkInterface__Group_8__2__Impl52997);
+            rule__PhysicalNetworkInterface__AddressesAssignment_8_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__2__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26790:1: rule__PhysicalNetworkInterface__Group_8__3 : rule__PhysicalNetworkInterface__Group_8__3__Impl rule__PhysicalNetworkInterface__Group_8__4 ;
+    public final void rule__PhysicalNetworkInterface__Group_8__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26794:1: ( rule__PhysicalNetworkInterface__Group_8__3__Impl rule__PhysicalNetworkInterface__Group_8__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26795:2: rule__PhysicalNetworkInterface__Group_8__3__Impl rule__PhysicalNetworkInterface__Group_8__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__3__Impl_in_rule__PhysicalNetworkInterface__Group_8__353027);
+            rule__PhysicalNetworkInterface__Group_8__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__4_in_rule__PhysicalNetworkInterface__Group_8__353030);
+            rule__PhysicalNetworkInterface__Group_8__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__3"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26802:1: rule__PhysicalNetworkInterface__Group_8__3__Impl : ( ( rule__PhysicalNetworkInterface__Group_8_3__0 )* ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26806:1: ( ( ( rule__PhysicalNetworkInterface__Group_8_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26807:1: ( ( rule__PhysicalNetworkInterface__Group_8_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26807:1: ( ( rule__PhysicalNetworkInterface__Group_8_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26808:1: ( rule__PhysicalNetworkInterface__Group_8_3__0 )*
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26809:1: ( rule__PhysicalNetworkInterface__Group_8_3__0 )*
+            loop134:
+            do {
+                int alt134=2;
+                int LA134_0 = input.LA(1);
+
+                if ( (LA134_0==31) ) {
+                    alt134=1;
+                }
+
+
+                switch (alt134) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26809:2: rule__PhysicalNetworkInterface__Group_8_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__0_in_rule__PhysicalNetworkInterface__Group_8__3__Impl53057);
+            	    rule__PhysicalNetworkInterface__Group_8_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop134;
+                }
+            } while (true);
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getGroup_8_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__3__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26819:1: rule__PhysicalNetworkInterface__Group_8__4 : rule__PhysicalNetworkInterface__Group_8__4__Impl ;
+    public final void rule__PhysicalNetworkInterface__Group_8__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26823:1: ( rule__PhysicalNetworkInterface__Group_8__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26824:2: rule__PhysicalNetworkInterface__Group_8__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8__4__Impl_in_rule__PhysicalNetworkInterface__Group_8__453088);
+            rule__PhysicalNetworkInterface__Group_8__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26830:1: rule__PhysicalNetworkInterface__Group_8__4__Impl : ( '}' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26834:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26835:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26835:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26836:1: '}'
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__PhysicalNetworkInterface__Group_8__4__Impl53116); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8__4__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26859:1: rule__PhysicalNetworkInterface__Group_8_3__0 : rule__PhysicalNetworkInterface__Group_8_3__0__Impl rule__PhysicalNetworkInterface__Group_8_3__1 ;
+    public final void rule__PhysicalNetworkInterface__Group_8_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26863:1: ( rule__PhysicalNetworkInterface__Group_8_3__0__Impl rule__PhysicalNetworkInterface__Group_8_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26864:2: rule__PhysicalNetworkInterface__Group_8_3__0__Impl rule__PhysicalNetworkInterface__Group_8_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__0__Impl_in_rule__PhysicalNetworkInterface__Group_8_3__053157);
+            rule__PhysicalNetworkInterface__Group_8_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__1_in_rule__PhysicalNetworkInterface__Group_8_3__053160);
+            rule__PhysicalNetworkInterface__Group_8_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8_3__0"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26871:1: rule__PhysicalNetworkInterface__Group_8_3__0__Impl : ( ',' ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26875:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26876:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26876:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26877:1: ','
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__PhysicalNetworkInterface__Group_8_3__0__Impl53188); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getCommaKeyword_8_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8_3__0__Impl"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26890:1: rule__PhysicalNetworkInterface__Group_8_3__1 : rule__PhysicalNetworkInterface__Group_8_3__1__Impl ;
+    public final void rule__PhysicalNetworkInterface__Group_8_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26894:1: ( rule__PhysicalNetworkInterface__Group_8_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26895:2: rule__PhysicalNetworkInterface__Group_8_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__1__Impl_in_rule__PhysicalNetworkInterface__Group_8_3__153219);
+            rule__PhysicalNetworkInterface__Group_8_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8_3__1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__Group_8_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26901:1: rule__PhysicalNetworkInterface__Group_8_3__1__Impl : ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 ) ) ;
+    public final void rule__PhysicalNetworkInterface__Group_8_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26905:1: ( ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26906:1: ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26906:1: ( ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26907:1: ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26908:1: ( rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26908:2: rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1_in_rule__PhysicalNetworkInterface__Group_8_3__1__Impl53246);
+            rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__Group_8_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26922:1: rule__VirtualNetworkInterface__Group__0 : rule__VirtualNetworkInterface__Group__0__Impl rule__VirtualNetworkInterface__Group__1 ;
+    public final void rule__VirtualNetworkInterface__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26926:1: ( rule__VirtualNetworkInterface__Group__0__Impl rule__VirtualNetworkInterface__Group__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26927:2: rule__VirtualNetworkInterface__Group__0__Impl rule__VirtualNetworkInterface__Group__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__0__Impl_in_rule__VirtualNetworkInterface__Group__053280);
+            rule__VirtualNetworkInterface__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__1_in_rule__VirtualNetworkInterface__Group__053283);
+            rule__VirtualNetworkInterface__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26934:1: rule__VirtualNetworkInterface__Group__0__Impl : ( 'VirtualNetworkInterface' ) ;
+    public final void rule__VirtualNetworkInterface__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26938:1: ( ( 'VirtualNetworkInterface' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26939:1: ( 'VirtualNetworkInterface' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26939:1: ( 'VirtualNetworkInterface' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26940:1: 'VirtualNetworkInterface'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); 
+            match(input,158,FollowSets002.FOLLOW_158_in_rule__VirtualNetworkInterface__Group__0__Impl53311); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getVirtualNetworkInterfaceKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26953:1: rule__VirtualNetworkInterface__Group__1 : rule__VirtualNetworkInterface__Group__1__Impl rule__VirtualNetworkInterface__Group__2 ;
+    public final void rule__VirtualNetworkInterface__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26957:1: ( rule__VirtualNetworkInterface__Group__1__Impl rule__VirtualNetworkInterface__Group__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26958:2: rule__VirtualNetworkInterface__Group__1__Impl rule__VirtualNetworkInterface__Group__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__1__Impl_in_rule__VirtualNetworkInterface__Group__153342);
+            rule__VirtualNetworkInterface__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__2_in_rule__VirtualNetworkInterface__Group__153345);
+            rule__VirtualNetworkInterface__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26965:1: rule__VirtualNetworkInterface__Group__1__Impl : ( ( rule__VirtualNetworkInterface__IdAssignment_1 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26969:1: ( ( ( rule__VirtualNetworkInterface__IdAssignment_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26970:1: ( ( rule__VirtualNetworkInterface__IdAssignment_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26970:1: ( ( rule__VirtualNetworkInterface__IdAssignment_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26971:1: ( rule__VirtualNetworkInterface__IdAssignment_1 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26972:1: ( rule__VirtualNetworkInterface__IdAssignment_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26972:2: rule__VirtualNetworkInterface__IdAssignment_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__IdAssignment_1_in_rule__VirtualNetworkInterface__Group__1__Impl53372);
+            rule__VirtualNetworkInterface__IdAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26982:1: rule__VirtualNetworkInterface__Group__2 : rule__VirtualNetworkInterface__Group__2__Impl rule__VirtualNetworkInterface__Group__3 ;
+    public final void rule__VirtualNetworkInterface__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26986:1: ( rule__VirtualNetworkInterface__Group__2__Impl rule__VirtualNetworkInterface__Group__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26987:2: rule__VirtualNetworkInterface__Group__2__Impl rule__VirtualNetworkInterface__Group__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__2__Impl_in_rule__VirtualNetworkInterface__Group__253402);
+            rule__VirtualNetworkInterface__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__3_in_rule__VirtualNetworkInterface__Group__253405);
+            rule__VirtualNetworkInterface__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26994:1: rule__VirtualNetworkInterface__Group__2__Impl : ( '{' ) ;
+    public final void rule__VirtualNetworkInterface__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26998:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26999:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:26999:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27000:1: '{'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__VirtualNetworkInterface__Group__2__Impl53433); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27013:1: rule__VirtualNetworkInterface__Group__3 : rule__VirtualNetworkInterface__Group__3__Impl rule__VirtualNetworkInterface__Group__4 ;
+    public final void rule__VirtualNetworkInterface__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27017:1: ( rule__VirtualNetworkInterface__Group__3__Impl rule__VirtualNetworkInterface__Group__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27018:2: rule__VirtualNetworkInterface__Group__3__Impl rule__VirtualNetworkInterface__Group__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__3__Impl_in_rule__VirtualNetworkInterface__Group__353464);
+            rule__VirtualNetworkInterface__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__4_in_rule__VirtualNetworkInterface__Group__353467);
+            rule__VirtualNetworkInterface__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__3"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27025:1: rule__VirtualNetworkInterface__Group__3__Impl : ( 'name' ) ;
+    public final void rule__VirtualNetworkInterface__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27029:1: ( ( 'name' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27030:1: ( 'name' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27030:1: ( 'name' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27031:1: 'name'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); 
+            match(input,65,FollowSets002.FOLLOW_65_in_rule__VirtualNetworkInterface__Group__3__Impl53495); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27044:1: rule__VirtualNetworkInterface__Group__4 : rule__VirtualNetworkInterface__Group__4__Impl rule__VirtualNetworkInterface__Group__5 ;
+    public final void rule__VirtualNetworkInterface__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27048:1: ( rule__VirtualNetworkInterface__Group__4__Impl rule__VirtualNetworkInterface__Group__5 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27049:2: rule__VirtualNetworkInterface__Group__4__Impl rule__VirtualNetworkInterface__Group__5
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__4__Impl_in_rule__VirtualNetworkInterface__Group__453526);
+            rule__VirtualNetworkInterface__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__5_in_rule__VirtualNetworkInterface__Group__453529);
+            rule__VirtualNetworkInterface__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27056:1: rule__VirtualNetworkInterface__Group__4__Impl : ( ( rule__VirtualNetworkInterface__NameAssignment_4 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27060:1: ( ( ( rule__VirtualNetworkInterface__NameAssignment_4 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27061:1: ( ( rule__VirtualNetworkInterface__NameAssignment_4 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27061:1: ( ( rule__VirtualNetworkInterface__NameAssignment_4 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27062:1: ( rule__VirtualNetworkInterface__NameAssignment_4 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27063:1: ( rule__VirtualNetworkInterface__NameAssignment_4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27063:2: rule__VirtualNetworkInterface__NameAssignment_4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__NameAssignment_4_in_rule__VirtualNetworkInterface__Group__4__Impl53556);
+            rule__VirtualNetworkInterface__NameAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27073:1: rule__VirtualNetworkInterface__Group__5 : rule__VirtualNetworkInterface__Group__5__Impl rule__VirtualNetworkInterface__Group__6 ;
+    public final void rule__VirtualNetworkInterface__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27077:1: ( rule__VirtualNetworkInterface__Group__5__Impl rule__VirtualNetworkInterface__Group__6 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27078:2: rule__VirtualNetworkInterface__Group__5__Impl rule__VirtualNetworkInterface__Group__6
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__5__Impl_in_rule__VirtualNetworkInterface__Group__553586);
+            rule__VirtualNetworkInterface__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__6_in_rule__VirtualNetworkInterface__Group__553589);
+            rule__VirtualNetworkInterface__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__5"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__5__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27085:1: rule__VirtualNetworkInterface__Group__5__Impl : ( ( rule__VirtualNetworkInterface__Group_5__0 )? ) ;
+    public final void rule__VirtualNetworkInterface__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27089:1: ( ( ( rule__VirtualNetworkInterface__Group_5__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27090:1: ( ( rule__VirtualNetworkInterface__Group_5__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27090:1: ( ( rule__VirtualNetworkInterface__Group_5__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27091:1: ( rule__VirtualNetworkInterface__Group_5__0 )?
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27092:1: ( rule__VirtualNetworkInterface__Group_5__0 )?
+            int alt135=2;
+            int LA135_0 = input.LA(1);
+
+            if ( (LA135_0==67) ) {
+                alt135=1;
+            }
+            switch (alt135) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27092:2: rule__VirtualNetworkInterface__Group_5__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__0_in_rule__VirtualNetworkInterface__Group__5__Impl53616);
+                    rule__VirtualNetworkInterface__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27102:1: rule__VirtualNetworkInterface__Group__6 : rule__VirtualNetworkInterface__Group__6__Impl rule__VirtualNetworkInterface__Group__7 ;
+    public final void rule__VirtualNetworkInterface__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27106:1: ( rule__VirtualNetworkInterface__Group__6__Impl rule__VirtualNetworkInterface__Group__7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27107:2: rule__VirtualNetworkInterface__Group__6__Impl rule__VirtualNetworkInterface__Group__7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__6__Impl_in_rule__VirtualNetworkInterface__Group__653647);
+            rule__VirtualNetworkInterface__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__7_in_rule__VirtualNetworkInterface__Group__653650);
+            rule__VirtualNetworkInterface__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__6"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__6__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27114:1: rule__VirtualNetworkInterface__Group__6__Impl : ( 'usedProtocolStack' ) ;
+    public final void rule__VirtualNetworkInterface__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27118:1: ( ( 'usedProtocolStack' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27119:1: ( 'usedProtocolStack' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27119:1: ( 'usedProtocolStack' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27120:1: 'usedProtocolStack'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); 
+            match(input,157,FollowSets002.FOLLOW_157_in_rule__VirtualNetworkInterface__Group__6__Impl53678); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27133:1: rule__VirtualNetworkInterface__Group__7 : rule__VirtualNetworkInterface__Group__7__Impl rule__VirtualNetworkInterface__Group__8 ;
+    public final void rule__VirtualNetworkInterface__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27137:1: ( rule__VirtualNetworkInterface__Group__7__Impl rule__VirtualNetworkInterface__Group__8 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27138:2: rule__VirtualNetworkInterface__Group__7__Impl rule__VirtualNetworkInterface__Group__8
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__7__Impl_in_rule__VirtualNetworkInterface__Group__753709);
+            rule__VirtualNetworkInterface__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__8_in_rule__VirtualNetworkInterface__Group__753712);
+            rule__VirtualNetworkInterface__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__7"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__7__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27145:1: rule__VirtualNetworkInterface__Group__7__Impl : ( ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27149:1: ( ( ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27150:1: ( ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27150:1: ( ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27151:1: ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27152:1: ( rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27152:2: rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7_in_rule__VirtualNetworkInterface__Group__7__Impl53739);
+            rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__7__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27162:1: rule__VirtualNetworkInterface__Group__8 : rule__VirtualNetworkInterface__Group__8__Impl rule__VirtualNetworkInterface__Group__9 ;
+    public final void rule__VirtualNetworkInterface__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27166:1: ( rule__VirtualNetworkInterface__Group__8__Impl rule__VirtualNetworkInterface__Group__9 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27167:2: rule__VirtualNetworkInterface__Group__8__Impl rule__VirtualNetworkInterface__Group__9
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__8__Impl_in_rule__VirtualNetworkInterface__Group__853769);
+            rule__VirtualNetworkInterface__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__9_in_rule__VirtualNetworkInterface__Group__853772);
+            rule__VirtualNetworkInterface__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__8"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__8__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27174:1: rule__VirtualNetworkInterface__Group__8__Impl : ( ( rule__VirtualNetworkInterface__Group_8__0 )? ) ;
+    public final void rule__VirtualNetworkInterface__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27178:1: ( ( ( rule__VirtualNetworkInterface__Group_8__0 )? ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27179:1: ( ( rule__VirtualNetworkInterface__Group_8__0 )? )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27179:1: ( ( rule__VirtualNetworkInterface__Group_8__0 )? )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27180:1: ( rule__VirtualNetworkInterface__Group_8__0 )?
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27181:1: ( rule__VirtualNetworkInterface__Group_8__0 )?
+            int alt136=2;
+            int LA136_0 = input.LA(1);
+
+            if ( (LA136_0==106) ) {
+                alt136=1;
+            }
+            switch (alt136) {
+                case 1 :
+                    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27181:2: rule__VirtualNetworkInterface__Group_8__0
+                    {
+                    pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__0_in_rule__VirtualNetworkInterface__Group__8__Impl53799);
+                    rule__VirtualNetworkInterface__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__8__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27191:1: rule__VirtualNetworkInterface__Group__9 : rule__VirtualNetworkInterface__Group__9__Impl rule__VirtualNetworkInterface__Group__10 ;
+    public final void rule__VirtualNetworkInterface__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27195:1: ( rule__VirtualNetworkInterface__Group__9__Impl rule__VirtualNetworkInterface__Group__10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27196:2: rule__VirtualNetworkInterface__Group__9__Impl rule__VirtualNetworkInterface__Group__10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__9__Impl_in_rule__VirtualNetworkInterface__Group__953830);
+            rule__VirtualNetworkInterface__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__10_in_rule__VirtualNetworkInterface__Group__953833);
+            rule__VirtualNetworkInterface__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__9"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__9__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27203:1: rule__VirtualNetworkInterface__Group__9__Impl : ( 'performance' ) ;
+    public final void rule__VirtualNetworkInterface__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27207:1: ( ( 'performance' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27208:1: ( 'performance' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27208:1: ( 'performance' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27209:1: 'performance'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); 
+            match(input,122,FollowSets002.FOLLOW_122_in_rule__VirtualNetworkInterface__Group__9__Impl53861); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__9__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27222:1: rule__VirtualNetworkInterface__Group__10 : rule__VirtualNetworkInterface__Group__10__Impl rule__VirtualNetworkInterface__Group__11 ;
+    public final void rule__VirtualNetworkInterface__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27226:1: ( rule__VirtualNetworkInterface__Group__10__Impl rule__VirtualNetworkInterface__Group__11 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27227:2: rule__VirtualNetworkInterface__Group__10__Impl rule__VirtualNetworkInterface__Group__11
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__10__Impl_in_rule__VirtualNetworkInterface__Group__1053892);
+            rule__VirtualNetworkInterface__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__11_in_rule__VirtualNetworkInterface__Group__1053895);
+            rule__VirtualNetworkInterface__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__10"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__10__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27234:1: rule__VirtualNetworkInterface__Group__10__Impl : ( ( rule__VirtualNetworkInterface__PerformanceAssignment_10 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27238:1: ( ( ( rule__VirtualNetworkInterface__PerformanceAssignment_10 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27239:1: ( ( rule__VirtualNetworkInterface__PerformanceAssignment_10 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27239:1: ( ( rule__VirtualNetworkInterface__PerformanceAssignment_10 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27240:1: ( rule__VirtualNetworkInterface__PerformanceAssignment_10 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27241:1: ( rule__VirtualNetworkInterface__PerformanceAssignment_10 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27241:2: rule__VirtualNetworkInterface__PerformanceAssignment_10
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__PerformanceAssignment_10_in_rule__VirtualNetworkInterface__Group__10__Impl53922);
+            rule__VirtualNetworkInterface__PerformanceAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformanceAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__10__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27251:1: rule__VirtualNetworkInterface__Group__11 : rule__VirtualNetworkInterface__Group__11__Impl ;
+    public final void rule__VirtualNetworkInterface__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27255:1: ( rule__VirtualNetworkInterface__Group__11__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27256:2: rule__VirtualNetworkInterface__Group__11__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group__11__Impl_in_rule__VirtualNetworkInterface__Group__1153952);
+            rule__VirtualNetworkInterface__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__11"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group__11__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27262:1: rule__VirtualNetworkInterface__Group__11__Impl : ( '}' ) ;
+    public final void rule__VirtualNetworkInterface__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27266:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27267:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27267:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27268:1: '}'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__VirtualNetworkInterface__Group__11__Impl53980); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group__11__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27305:1: rule__VirtualNetworkInterface__Group_5__0 : rule__VirtualNetworkInterface__Group_5__0__Impl rule__VirtualNetworkInterface__Group_5__1 ;
+    public final void rule__VirtualNetworkInterface__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27309:1: ( rule__VirtualNetworkInterface__Group_5__0__Impl rule__VirtualNetworkInterface__Group_5__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27310:2: rule__VirtualNetworkInterface__Group_5__0__Impl rule__VirtualNetworkInterface__Group_5__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__0__Impl_in_rule__VirtualNetworkInterface__Group_5__054035);
+            rule__VirtualNetworkInterface__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__1_in_rule__VirtualNetworkInterface__Group_5__054038);
+            rule__VirtualNetworkInterface__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27317:1: rule__VirtualNetworkInterface__Group_5__0__Impl : ( 'alternativeNames' ) ;
+    public final void rule__VirtualNetworkInterface__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27321:1: ( ( 'alternativeNames' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27322:1: ( 'alternativeNames' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27322:1: ( 'alternativeNames' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27323:1: 'alternativeNames'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); 
+            match(input,67,FollowSets002.FOLLOW_67_in_rule__VirtualNetworkInterface__Group_5__0__Impl54066); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesKeyword_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27336:1: rule__VirtualNetworkInterface__Group_5__1 : rule__VirtualNetworkInterface__Group_5__1__Impl rule__VirtualNetworkInterface__Group_5__2 ;
+    public final void rule__VirtualNetworkInterface__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27340:1: ( rule__VirtualNetworkInterface__Group_5__1__Impl rule__VirtualNetworkInterface__Group_5__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27341:2: rule__VirtualNetworkInterface__Group_5__1__Impl rule__VirtualNetworkInterface__Group_5__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__1__Impl_in_rule__VirtualNetworkInterface__Group_5__154097);
+            rule__VirtualNetworkInterface__Group_5__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__2_in_rule__VirtualNetworkInterface__Group_5__154100);
+            rule__VirtualNetworkInterface__Group_5__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27348:1: rule__VirtualNetworkInterface__Group_5__1__Impl : ( '{' ) ;
+    public final void rule__VirtualNetworkInterface__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27352:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27353:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27353:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27354:1: '{'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__VirtualNetworkInterface__Group_5__1__Impl54128); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27367:1: rule__VirtualNetworkInterface__Group_5__2 : rule__VirtualNetworkInterface__Group_5__2__Impl rule__VirtualNetworkInterface__Group_5__3 ;
+    public final void rule__VirtualNetworkInterface__Group_5__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27371:1: ( rule__VirtualNetworkInterface__Group_5__2__Impl rule__VirtualNetworkInterface__Group_5__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27372:2: rule__VirtualNetworkInterface__Group_5__2__Impl rule__VirtualNetworkInterface__Group_5__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__2__Impl_in_rule__VirtualNetworkInterface__Group_5__254159);
+            rule__VirtualNetworkInterface__Group_5__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__3_in_rule__VirtualNetworkInterface__Group_5__254162);
+            rule__VirtualNetworkInterface__Group_5__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27379:1: rule__VirtualNetworkInterface__Group_5__2__Impl : ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group_5__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27383:1: ( ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27384:1: ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27384:1: ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27385:1: ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27386:1: ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27386:2: rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2_in_rule__VirtualNetworkInterface__Group_5__2__Impl54189);
+            rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27396:1: rule__VirtualNetworkInterface__Group_5__3 : rule__VirtualNetworkInterface__Group_5__3__Impl rule__VirtualNetworkInterface__Group_5__4 ;
+    public final void rule__VirtualNetworkInterface__Group_5__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27400:1: ( rule__VirtualNetworkInterface__Group_5__3__Impl rule__VirtualNetworkInterface__Group_5__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27401:2: rule__VirtualNetworkInterface__Group_5__3__Impl rule__VirtualNetworkInterface__Group_5__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__3__Impl_in_rule__VirtualNetworkInterface__Group_5__354219);
+            rule__VirtualNetworkInterface__Group_5__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__4_in_rule__VirtualNetworkInterface__Group_5__354222);
+            rule__VirtualNetworkInterface__Group_5__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__3"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27408:1: rule__VirtualNetworkInterface__Group_5__3__Impl : ( ( rule__VirtualNetworkInterface__Group_5_3__0 )* ) ;
+    public final void rule__VirtualNetworkInterface__Group_5__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27412:1: ( ( ( rule__VirtualNetworkInterface__Group_5_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27413:1: ( ( rule__VirtualNetworkInterface__Group_5_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27413:1: ( ( rule__VirtualNetworkInterface__Group_5_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27414:1: ( rule__VirtualNetworkInterface__Group_5_3__0 )*
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27415:1: ( rule__VirtualNetworkInterface__Group_5_3__0 )*
+            loop137:
+            do {
+                int alt137=2;
+                int LA137_0 = input.LA(1);
+
+                if ( (LA137_0==31) ) {
+                    alt137=1;
+                }
+
+
+                switch (alt137) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27415:2: rule__VirtualNetworkInterface__Group_5_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5_3__0_in_rule__VirtualNetworkInterface__Group_5__3__Impl54249);
+            	    rule__VirtualNetworkInterface__Group_5_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop137;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_5_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27425:1: rule__VirtualNetworkInterface__Group_5__4 : rule__VirtualNetworkInterface__Group_5__4__Impl ;
+    public final void rule__VirtualNetworkInterface__Group_5__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27429:1: ( rule__VirtualNetworkInterface__Group_5__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27430:2: rule__VirtualNetworkInterface__Group_5__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5__4__Impl_in_rule__VirtualNetworkInterface__Group_5__454280);
+            rule__VirtualNetworkInterface__Group_5__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27436:1: rule__VirtualNetworkInterface__Group_5__4__Impl : ( '}' ) ;
+    public final void rule__VirtualNetworkInterface__Group_5__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27440:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27441:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27441:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27442:1: '}'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__VirtualNetworkInterface__Group_5__4__Impl54308); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_5_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27465:1: rule__VirtualNetworkInterface__Group_5_3__0 : rule__VirtualNetworkInterface__Group_5_3__0__Impl rule__VirtualNetworkInterface__Group_5_3__1 ;
+    public final void rule__VirtualNetworkInterface__Group_5_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27469:1: ( rule__VirtualNetworkInterface__Group_5_3__0__Impl rule__VirtualNetworkInterface__Group_5_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27470:2: rule__VirtualNetworkInterface__Group_5_3__0__Impl rule__VirtualNetworkInterface__Group_5_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5_3__0__Impl_in_rule__VirtualNetworkInterface__Group_5_3__054349);
+            rule__VirtualNetworkInterface__Group_5_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5_3__1_in_rule__VirtualNetworkInterface__Group_5_3__054352);
+            rule__VirtualNetworkInterface__Group_5_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5_3__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27477:1: rule__VirtualNetworkInterface__Group_5_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualNetworkInterface__Group_5_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27481:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27482:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27482:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27483:1: ','
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__VirtualNetworkInterface__Group_5_3__0__Impl54380); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_5_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27496:1: rule__VirtualNetworkInterface__Group_5_3__1 : rule__VirtualNetworkInterface__Group_5_3__1__Impl ;
+    public final void rule__VirtualNetworkInterface__Group_5_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27500:1: ( rule__VirtualNetworkInterface__Group_5_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27501:2: rule__VirtualNetworkInterface__Group_5_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_5_3__1__Impl_in_rule__VirtualNetworkInterface__Group_5_3__154411);
+            rule__VirtualNetworkInterface__Group_5_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5_3__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_5_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27507:1: rule__VirtualNetworkInterface__Group_5_3__1__Impl : ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group_5_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27511:1: ( ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27512:1: ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27512:1: ( ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27513:1: ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27514:1: ( rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27514:2: rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1_in_rule__VirtualNetworkInterface__Group_5_3__1__Impl54438);
+            rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesAssignment_5_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_5_3__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27528:1: rule__VirtualNetworkInterface__Group_8__0 : rule__VirtualNetworkInterface__Group_8__0__Impl rule__VirtualNetworkInterface__Group_8__1 ;
+    public final void rule__VirtualNetworkInterface__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27532:1: ( rule__VirtualNetworkInterface__Group_8__0__Impl rule__VirtualNetworkInterface__Group_8__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27533:2: rule__VirtualNetworkInterface__Group_8__0__Impl rule__VirtualNetworkInterface__Group_8__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__0__Impl_in_rule__VirtualNetworkInterface__Group_8__054472);
+            rule__VirtualNetworkInterface__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__1_in_rule__VirtualNetworkInterface__Group_8__054475);
+            rule__VirtualNetworkInterface__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27540:1: rule__VirtualNetworkInterface__Group_8__0__Impl : ( 'addresses' ) ;
+    public final void rule__VirtualNetworkInterface__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27544:1: ( ( 'addresses' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27545:1: ( 'addresses' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27545:1: ( 'addresses' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27546:1: 'addresses'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); 
+            match(input,106,FollowSets002.FOLLOW_106_in_rule__VirtualNetworkInterface__Group_8__0__Impl54503); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27559:1: rule__VirtualNetworkInterface__Group_8__1 : rule__VirtualNetworkInterface__Group_8__1__Impl rule__VirtualNetworkInterface__Group_8__2 ;
+    public final void rule__VirtualNetworkInterface__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27563:1: ( rule__VirtualNetworkInterface__Group_8__1__Impl rule__VirtualNetworkInterface__Group_8__2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27564:2: rule__VirtualNetworkInterface__Group_8__1__Impl rule__VirtualNetworkInterface__Group_8__2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__1__Impl_in_rule__VirtualNetworkInterface__Group_8__154534);
+            rule__VirtualNetworkInterface__Group_8__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__2_in_rule__VirtualNetworkInterface__Group_8__154537);
+            rule__VirtualNetworkInterface__Group_8__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27571:1: rule__VirtualNetworkInterface__Group_8__1__Impl : ( '{' ) ;
+    public final void rule__VirtualNetworkInterface__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27575:1: ( ( '{' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27576:1: ( '{' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27576:1: ( '{' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27577:1: '{'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); 
+            match(input,23,FollowSets002.FOLLOW_23_in_rule__VirtualNetworkInterface__Group_8__1__Impl54565); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getLeftCurlyBracketKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27590:1: rule__VirtualNetworkInterface__Group_8__2 : rule__VirtualNetworkInterface__Group_8__2__Impl rule__VirtualNetworkInterface__Group_8__3 ;
+    public final void rule__VirtualNetworkInterface__Group_8__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27594:1: ( rule__VirtualNetworkInterface__Group_8__2__Impl rule__VirtualNetworkInterface__Group_8__3 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27595:2: rule__VirtualNetworkInterface__Group_8__2__Impl rule__VirtualNetworkInterface__Group_8__3
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__2__Impl_in_rule__VirtualNetworkInterface__Group_8__254596);
+            rule__VirtualNetworkInterface__Group_8__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__3_in_rule__VirtualNetworkInterface__Group_8__254599);
+            rule__VirtualNetworkInterface__Group_8__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__2__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27602:1: rule__VirtualNetworkInterface__Group_8__2__Impl : ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group_8__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27606:1: ( ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27607:1: ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27607:1: ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27608:1: ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27609:1: ( rule__VirtualNetworkInterface__AddressesAssignment_8_2 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27609:2: rule__VirtualNetworkInterface__AddressesAssignment_8_2
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__AddressesAssignment_8_2_in_rule__VirtualNetworkInterface__Group_8__2__Impl54626);
+            rule__VirtualNetworkInterface__AddressesAssignment_8_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__2__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27619:1: rule__VirtualNetworkInterface__Group_8__3 : rule__VirtualNetworkInterface__Group_8__3__Impl rule__VirtualNetworkInterface__Group_8__4 ;
+    public final void rule__VirtualNetworkInterface__Group_8__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27623:1: ( rule__VirtualNetworkInterface__Group_8__3__Impl rule__VirtualNetworkInterface__Group_8__4 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27624:2: rule__VirtualNetworkInterface__Group_8__3__Impl rule__VirtualNetworkInterface__Group_8__4
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__3__Impl_in_rule__VirtualNetworkInterface__Group_8__354656);
+            rule__VirtualNetworkInterface__Group_8__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__4_in_rule__VirtualNetworkInterface__Group_8__354659);
+            rule__VirtualNetworkInterface__Group_8__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__3"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__3__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27631:1: rule__VirtualNetworkInterface__Group_8__3__Impl : ( ( rule__VirtualNetworkInterface__Group_8_3__0 )* ) ;
+    public final void rule__VirtualNetworkInterface__Group_8__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27635:1: ( ( ( rule__VirtualNetworkInterface__Group_8_3__0 )* ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27636:1: ( ( rule__VirtualNetworkInterface__Group_8_3__0 )* )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27636:1: ( ( rule__VirtualNetworkInterface__Group_8_3__0 )* )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27637:1: ( rule__VirtualNetworkInterface__Group_8_3__0 )*
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27638:1: ( rule__VirtualNetworkInterface__Group_8_3__0 )*
+            loop138:
+            do {
+                int alt138=2;
+                int LA138_0 = input.LA(1);
+
+                if ( (LA138_0==31) ) {
+                    alt138=1;
+                }
+
+
+                switch (alt138) {
+            	case 1 :
+            	    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27638:2: rule__VirtualNetworkInterface__Group_8_3__0
+            	    {
+            	    pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8_3__0_in_rule__VirtualNetworkInterface__Group_8__3__Impl54686);
+            	    rule__VirtualNetworkInterface__Group_8_3__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop138;
+                }
+            } while (true);
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getGroup_8_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__3__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27648:1: rule__VirtualNetworkInterface__Group_8__4 : rule__VirtualNetworkInterface__Group_8__4__Impl ;
+    public final void rule__VirtualNetworkInterface__Group_8__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27652:1: ( rule__VirtualNetworkInterface__Group_8__4__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27653:2: rule__VirtualNetworkInterface__Group_8__4__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8__4__Impl_in_rule__VirtualNetworkInterface__Group_8__454717);
+            rule__VirtualNetworkInterface__Group_8__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8__4__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27659:1: rule__VirtualNetworkInterface__Group_8__4__Impl : ( '}' ) ;
+    public final void rule__VirtualNetworkInterface__Group_8__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27663:1: ( ( '}' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27664:1: ( '}' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27664:1: ( '}' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27665:1: '}'
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); 
+            match(input,29,FollowSets002.FOLLOW_29_in_rule__VirtualNetworkInterface__Group_8__4__Impl54745); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getRightCurlyBracketKeyword_8_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8__4__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8_3__0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27688:1: rule__VirtualNetworkInterface__Group_8_3__0 : rule__VirtualNetworkInterface__Group_8_3__0__Impl rule__VirtualNetworkInterface__Group_8_3__1 ;
+    public final void rule__VirtualNetworkInterface__Group_8_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27692:1: ( rule__VirtualNetworkInterface__Group_8_3__0__Impl rule__VirtualNetworkInterface__Group_8_3__1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27693:2: rule__VirtualNetworkInterface__Group_8_3__0__Impl rule__VirtualNetworkInterface__Group_8_3__1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8_3__0__Impl_in_rule__VirtualNetworkInterface__Group_8_3__054786);
+            rule__VirtualNetworkInterface__Group_8_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8_3__1_in_rule__VirtualNetworkInterface__Group_8_3__054789);
+            rule__VirtualNetworkInterface__Group_8_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8_3__0"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8_3__0__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27700:1: rule__VirtualNetworkInterface__Group_8_3__0__Impl : ( ',' ) ;
+    public final void rule__VirtualNetworkInterface__Group_8_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27704:1: ( ( ',' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27705:1: ( ',' )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27705:1: ( ',' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27706:1: ','
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); 
+            match(input,31,FollowSets002.FOLLOW_31_in_rule__VirtualNetworkInterface__Group_8_3__0__Impl54817); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getCommaKeyword_8_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8_3__0__Impl"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8_3__1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27719:1: rule__VirtualNetworkInterface__Group_8_3__1 : rule__VirtualNetworkInterface__Group_8_3__1__Impl ;
+    public final void rule__VirtualNetworkInterface__Group_8_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27723:1: ( rule__VirtualNetworkInterface__Group_8_3__1__Impl )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27724:2: rule__VirtualNetworkInterface__Group_8_3__1__Impl
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__Group_8_3__1__Impl_in_rule__VirtualNetworkInterface__Group_8_3__154848);
+            rule__VirtualNetworkInterface__Group_8_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8_3__1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__Group_8_3__1__Impl"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27730:1: rule__VirtualNetworkInterface__Group_8_3__1__Impl : ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 ) ) ;
+    public final void rule__VirtualNetworkInterface__Group_8_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27734:1: ( ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27735:1: ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27735:1: ( ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27736:1: ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27737:1: ( rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27737:2: rule__VirtualNetworkInterface__AddressesAssignment_8_3_1
+            {
+            pushFollow(FollowSets002.FOLLOW_rule__VirtualNetworkInterface__AddressesAssignment_8_3_1_in_rule__VirtualNetworkInterface__Group_8_3__1__Impl54875);
+            rule__VirtualNetworkInterface__AddressesAssignment_8_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesAssignment_8_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__Group_8_3__1__Impl"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__DataCenterNameAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27752:1: rule__NetworkInfrastructure__DataCenterNameAssignment_3 : ( ruleEString ) ;
+    public final void rule__NetworkInfrastructure__DataCenterNameAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27756:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27757:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27757:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27758:1: ruleEString
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__NetworkInfrastructure__DataCenterNameAssignment_354914);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterNameEStringParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__DataCenterNameAssignment_3"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__DataCenterAltNameAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27767:1: rule__NetworkInfrastructure__DataCenterAltNameAssignment_5 : ( ruleEString ) ;
+    public final void rule__NetworkInfrastructure__DataCenterAltNameAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27771:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27772:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27772:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27773:1: ruleEString
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__NetworkInfrastructure__DataCenterAltNameAssignment_554945);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getDataCenterAltNameEStringParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__DataCenterAltNameAssignment_5"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__TrafficAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27782:1: rule__NetworkInfrastructure__TrafficAssignment_7 : ( ruleNetworkTraffic ) ;
+    public final void rule__NetworkInfrastructure__TrafficAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27786:1: ( ( ruleNetworkTraffic ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27787:1: ( ruleNetworkTraffic )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27787:1: ( ruleNetworkTraffic )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27788:1: ruleNetworkTraffic
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkTraffic_in_rule__NetworkInfrastructure__TrafficAssignment_754976);
+            ruleNetworkTraffic();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getTrafficNetworkTrafficParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__TrafficAssignment_7"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__StructureAssignment_9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27797:1: rule__NetworkInfrastructure__StructureAssignment_9 : ( ruleNetworkStructure ) ;
+    public final void rule__NetworkInfrastructure__StructureAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27801:1: ( ( ruleNetworkStructure ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27802:1: ( ruleNetworkStructure )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27802:1: ( ruleNetworkStructure )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27803:1: ruleNetworkStructure
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkStructure_in_rule__NetworkInfrastructure__StructureAssignment_955007);
+            ruleNetworkStructure();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getStructureNetworkStructureParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__StructureAssignment_9"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__ConfigurationAssignment_11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27812:1: rule__NetworkInfrastructure__ConfigurationAssignment_11 : ( ruleNetworkConfiguration ) ;
+    public final void rule__NetworkInfrastructure__ConfigurationAssignment_11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27816:1: ( ( ruleNetworkConfiguration ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27817:1: ( ruleNetworkConfiguration )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27817:1: ( ruleNetworkConfiguration )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27818:1: ruleNetworkConfiguration
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkConfiguration_in_rule__NetworkInfrastructure__ConfigurationAssignment_1155038);
+            ruleNetworkConfiguration();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getConfigurationNetworkConfigurationParserRuleCall_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__ConfigurationAssignment_11"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__ParamsAssignment_12_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27827:1: rule__NetworkInfrastructure__ParamsAssignment_12_2 : ( ruleExperimentParam ) ;
+    public final void rule__NetworkInfrastructure__ParamsAssignment_12_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27831:1: ( ( ruleExperimentParam ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27832:1: ( ruleExperimentParam )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27832:1: ( ruleExperimentParam )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27833:1: ruleExperimentParam
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleExperimentParam_in_rule__NetworkInfrastructure__ParamsAssignment_12_255069);
+            ruleExperimentParam();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__ParamsAssignment_12_2"
+
+
+    // $ANTLR start "rule__NetworkInfrastructure__ParamsAssignment_12_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27842:1: rule__NetworkInfrastructure__ParamsAssignment_12_3_1 : ( ruleExperimentParam ) ;
+    public final void rule__NetworkInfrastructure__ParamsAssignment_12_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27846:1: ( ( ruleExperimentParam ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27847:1: ( ruleExperimentParam )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27847:1: ( ruleExperimentParam )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27848:1: ruleExperimentParam
+            {
+             before(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleExperimentParam_in_rule__NetworkInfrastructure__ParamsAssignment_12_3_155100);
+            ruleExperimentParam();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkInfrastructureAccess().getParamsExperimentParamParserRuleCall_12_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkInfrastructure__ParamsAssignment_12_3_1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27857:1: rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4 : ( ruleEBoolean ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27861:1: ( ( ruleEBoolean ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27862:1: ( ruleEBoolean )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27862:1: ( ruleEBoolean )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27863:1: ruleEBoolean
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEBoolean_in_rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_455131);
+            ruleEBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27872:1: rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 : ( ruleDependency ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27876:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27877:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27877:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27878:1: ruleDependency
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_655162);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27887:1: rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8 : ( ruleEInt ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27891:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27892:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27892:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27893:1: ruleEInt
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_855193);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27902:1: rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 : ( ruleSpeedUnit ) ;
+    public final void rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27906:1: ( ( ruleSpeedUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27907:1: ( ruleSpeedUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27907:1: ( ruleSpeedUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27908:1: ruleSpeedUnit
+            {
+             before(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleSpeedUnit_in_rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_1055224);
+            ruleSpeedUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27917:1: rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4 : ( ruleEBoolean ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27921:1: ( ( ruleEBoolean ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27922:1: ( ruleEBoolean )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27922:1: ( ruleEBoolean )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27923:1: ruleEBoolean
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEBoolean_in_rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_455255);
+            ruleEBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getIsUpEBooleanParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27932:1: rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6 : ( ruleDependency ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27936:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27937:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27937:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27938:1: ruleDependency
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_655286);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27947:1: rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8 : ( ruleEInt ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27951:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27952:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27952:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27953:1: ruleEInt
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_855317);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getMTUEIntParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27962:1: rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10 : ( ruleSpeedUnit ) ;
+    public final void rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27966:1: ( ( ruleSpeedUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27967:1: ( ruleSpeedUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27967:1: ( ruleSpeedUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27968:1: ruleSpeedUnit
+            {
+             before(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleSpeedUnit_in_rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_1055348);
+            ruleSpeedUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfacePerfSpecAccess().getInterfaceSpeedSpeedUnitParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27977:1: rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4 : ( ruleDependency ) ;
+    public final void rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27981:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27982:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27982:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27983:1: ruleDependency
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__VirtualLinkPerfSpec__PropagationDelayAssignment_455379);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4"
+
+
+    // $ANTLR start "rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27992:1: rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 : ( ruleDependency ) ;
+    public final void rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27996:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27997:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27997:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:27998:1: ruleDependency
+            {
+             before(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_155410);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28007:1: rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4 : ( ruleDependency ) ;
+    public final void rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28011:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28012:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28012:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28013:1: ruleDependency
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_455441);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getPropagationDelayDependencyParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4"
+
+
+    // $ANTLR start "rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28022:1: rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1 : ( ruleDependency ) ;
+    public final void rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28026:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28027:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28027:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28028:1: ruleDependency
+            {
+             before(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_155472);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkPerfSpecAccess().getMaxSupportedBandwidthDependencyParserRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__DataplaneAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28037:1: rule__IntermediateNodePerfSpec__DataplaneAssignment_3 : ( ruleDataPlanePerfSpec ) ;
+    public final void rule__IntermediateNodePerfSpec__DataplaneAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28041:1: ( ( ruleDataPlanePerfSpec ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28042:1: ( ruleDataPlanePerfSpec )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28042:1: ( ruleDataPlanePerfSpec )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28043:1: ruleDataPlanePerfSpec
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDataPlanePerfSpec_in_rule__IntermediateNodePerfSpec__DataplaneAssignment_355503);
+            ruleDataPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__DataplaneAssignment_3"
+
+
+    // $ANTLR start "rule__IntermediateNodePerfSpec__ControlplaneAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28052:1: rule__IntermediateNodePerfSpec__ControlplaneAssignment_5 : ( ruleControlPlanePerfSpec ) ;
+    public final void rule__IntermediateNodePerfSpec__ControlplaneAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28056:1: ( ( ruleControlPlanePerfSpec ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28057:1: ( ruleControlPlanePerfSpec )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28057:1: ( ruleControlPlanePerfSpec )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28058:1: ruleControlPlanePerfSpec
+            {
+             before(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleControlPlanePerfSpec_in_rule__IntermediateNodePerfSpec__ControlplaneAssignment_555534);
+            ruleControlPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntermediateNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntermediateNodePerfSpec__ControlplaneAssignment_5"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28067:1: rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3 : ( ruleDependency ) ;
+    public final void rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28071:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28072:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28072:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28073:1: ruleDependency
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_355565);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingLatencyDependencyParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28082:1: rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5 : ( ruleDependency ) ;
+    public final void rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28086:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28087:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28087:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28088:1: ruleDependency
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_555596);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getProcessingBandwidthReqPSDependencyParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5"
+
+
+    // $ANTLR start "rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28097:1: rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7 : ( ruleDependency ) ;
+    public final void rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28101:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28102:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28102:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28103:1: ruleDependency
+            {
+             before(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_755627);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getControlPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28112:1: rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3 : ( ruleDependency ) ;
+    public final void rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28116:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28117:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28117:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28118:1: ruleDependency
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingLatencyAssignment_355658);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingLatencyDependencyParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28127:1: rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5 : ( ruleDependency ) ;
+    public final void rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28131:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28132:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28132:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28133:1: ruleDependency
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_555689);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthPPSDependencyParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28142:1: rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7 : ( ruleDependency ) ;
+    public final void rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28146:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28147:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28147:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28148:1: ruleDependency
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_755720);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getForwardingBandwidthBPSDependencyParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7"
+
+
+    // $ANTLR start "rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28157:1: rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9 : ( ruleDependency ) ;
+    public final void rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28161:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28162:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28162:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28163:1: ruleDependency
+            {
+             before(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_955751);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataPlanePerfSpecAccess().getPacketProcessingTimeDependencyParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28172:1: rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3 : ( ruleDependency ) ;
+    public final void rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28176:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28177:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28177:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28178:1: ruleDependency
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_355782);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getSoftwareLayersDelayDependencyParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__DataplaneAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28187:1: rule__EndNodePerfSpec__DataplaneAssignment_4_1 : ( ruleDataPlanePerfSpec ) ;
+    public final void rule__EndNodePerfSpec__DataplaneAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28191:1: ( ( ruleDataPlanePerfSpec ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28192:1: ( ruleDataPlanePerfSpec )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28192:1: ( ruleDataPlanePerfSpec )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28193:1: ruleDataPlanePerfSpec
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDataPlanePerfSpec_in_rule__EndNodePerfSpec__DataplaneAssignment_4_155813);
+            ruleDataPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getDataplaneDataPlanePerfSpecParserRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__DataplaneAssignment_4_1"
+
+
+    // $ANTLR start "rule__EndNodePerfSpec__ControlplaneAssignment_5_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28202:1: rule__EndNodePerfSpec__ControlplaneAssignment_5_1 : ( ruleControlPlanePerfSpec ) ;
+    public final void rule__EndNodePerfSpec__ControlplaneAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28206:1: ( ( ruleControlPlanePerfSpec ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28207:1: ( ruleControlPlanePerfSpec )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28207:1: ( ruleControlPlanePerfSpec )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28208:1: ruleControlPlanePerfSpec
+            {
+             before(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleControlPlanePerfSpec_in_rule__EndNodePerfSpec__ControlplaneAssignment_5_155844);
+            ruleControlPlanePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndNodePerfSpecAccess().getControlplaneControlPlanePerfSpecParserRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndNodePerfSpec__ControlplaneAssignment_5_1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__FlowsAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28217:1: rule__NetworkTraffic__FlowsAssignment_3_2 : ( ruleFlow ) ;
+    public final void rule__NetworkTraffic__FlowsAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28221:1: ( ( ruleFlow ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28222:1: ( ruleFlow )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28222:1: ( ruleFlow )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28223:1: ruleFlow
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleFlow_in_rule__NetworkTraffic__FlowsAssignment_3_255875);
+            ruleFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__FlowsAssignment_3_2"
+
+
+    // $ANTLR start "rule__NetworkTraffic__FlowsAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28232:1: rule__NetworkTraffic__FlowsAssignment_3_3_1 : ( ruleFlow ) ;
+    public final void rule__NetworkTraffic__FlowsAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28236:1: ( ( ruleFlow ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28237:1: ( ruleFlow )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28237:1: ( ruleFlow )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28238:1: ruleFlow
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleFlow_in_rule__NetworkTraffic__FlowsAssignment_3_3_155906);
+            ruleFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkTrafficAccess().getFlowsFlowParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__FlowsAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__NetworkTraffic__SoftwareAssignment_4_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28247:1: rule__NetworkTraffic__SoftwareAssignment_4_2 : ( ruleSoftwareComponent ) ;
+    public final void rule__NetworkTraffic__SoftwareAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28251:1: ( ( ruleSoftwareComponent ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28252:1: ( ruleSoftwareComponent )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28252:1: ( ruleSoftwareComponent )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28253:1: ruleSoftwareComponent
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleSoftwareComponent_in_rule__NetworkTraffic__SoftwareAssignment_4_255937);
+            ruleSoftwareComponent();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__SoftwareAssignment_4_2"
+
+
+    // $ANTLR start "rule__NetworkTraffic__SoftwareAssignment_4_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28262:1: rule__NetworkTraffic__SoftwareAssignment_4_3_1 : ( ruleSoftwareComponent ) ;
+    public final void rule__NetworkTraffic__SoftwareAssignment_4_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28266:1: ( ( ruleSoftwareComponent ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28267:1: ( ruleSoftwareComponent )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28267:1: ( ruleSoftwareComponent )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28268:1: ruleSoftwareComponent
+            {
+             before(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleSoftwareComponent_in_rule__NetworkTraffic__SoftwareAssignment_4_3_155968);
+            ruleSoftwareComponent();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkTrafficAccess().getSoftwareSoftwareComponentParserRuleCall_4_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkTraffic__SoftwareAssignment_4_3_1"
+
+
+    // $ANTLR start "rule__NetworkStructure__NodesAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28277:1: rule__NetworkStructure__NodesAssignment_3_2 : ( ruleNode ) ;
+    public final void rule__NetworkStructure__NodesAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28281:1: ( ( ruleNode ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28282:1: ( ruleNode )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28282:1: ( ruleNode )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28283:1: ruleNode
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNode_in_rule__NetworkStructure__NodesAssignment_3_255999);
+            ruleNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__NodesAssignment_3_2"
+
+
+    // $ANTLR start "rule__NetworkStructure__NodesAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28292:1: rule__NetworkStructure__NodesAssignment_3_3_1 : ( ruleNode ) ;
+    public final void rule__NetworkStructure__NodesAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28296:1: ( ( ruleNode ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28297:1: ( ruleNode )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28297:1: ( ruleNode )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28298:1: ruleNode
+            {
+             before(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNode_in_rule__NetworkStructure__NodesAssignment_3_3_156030);
+            ruleNode();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkStructureAccess().getNodesNodeParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__NodesAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__NetworkStructure__LinksAssignment_4_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28307:1: rule__NetworkStructure__LinksAssignment_4_2 : ( ruleLink ) ;
+    public final void rule__NetworkStructure__LinksAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28311:1: ( ( ruleLink ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28312:1: ( ruleLink )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28312:1: ( ruleLink )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28313:1: ruleLink
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleLink_in_rule__NetworkStructure__LinksAssignment_4_256061);
+            ruleLink();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__LinksAssignment_4_2"
+
+
+    // $ANTLR start "rule__NetworkStructure__LinksAssignment_4_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28322:1: rule__NetworkStructure__LinksAssignment_4_3_1 : ( ruleLink ) ;
+    public final void rule__NetworkStructure__LinksAssignment_4_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28326:1: ( ( ruleLink ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28327:1: ( ruleLink )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28327:1: ( ruleLink )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28328:1: ruleLink
+            {
+             before(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleLink_in_rule__NetworkStructure__LinksAssignment_4_3_156092);
+            ruleLink();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkStructureAccess().getLinksLinkParserRuleCall_4_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkStructure__LinksAssignment_4_3_1"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28337:1: rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3 : ( ruleProtocolsRepository ) ;
+    public final void rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28341:1: ( ( ruleProtocolsRepository ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28342:1: ( ruleProtocolsRepository )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28342:1: ( ruleProtocolsRepository )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28343:1: ruleProtocolsRepository
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleProtocolsRepository_in_rule__NetworkConfiguration__ProtocolsAndStacksAssignment_356123);
+            ruleProtocolsRepository();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkConfigurationAccess().getProtocolsAndStacksProtocolsRepositoryParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3"
+
+
+    // $ANTLR start "rule__NetworkConfiguration__RoutesAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28352:1: rule__NetworkConfiguration__RoutesAssignment_5 : ( ruleRoutesRepository ) ;
+    public final void rule__NetworkConfiguration__RoutesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28356:1: ( ( ruleRoutesRepository ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28357:1: ( ruleRoutesRepository )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28357:1: ( ruleRoutesRepository )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28358:1: ruleRoutesRepository
+            {
+             before(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleRoutesRepository_in_rule__NetworkConfiguration__RoutesAssignment_556154);
+            ruleRoutesRepository();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkConfigurationAccess().getRoutesRoutesRepositoryParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkConfiguration__RoutesAssignment_5"
+
+
+    // $ANTLR start "rule__ExperimentParam__NameAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28367:1: rule__ExperimentParam__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__ExperimentParam__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28371:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28372:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28372:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28373:1: ruleEString
+            {
+             before(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ExperimentParam__NameAssignment_156185);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getExperimentParamAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ExperimentParam__ValueAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28382:1: rule__ExperimentParam__ValueAssignment_4 : ( ruleEString ) ;
+    public final void rule__ExperimentParam__ValueAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28386:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28387:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28387:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28388:1: ruleEString
+            {
+             before(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ExperimentParam__ValueAssignment_456216);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getExperimentParamAccess().getValueEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExperimentParam__ValueAssignment_4"
+
+
+    // $ANTLR start "rule__SoftwareComponent__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28397:1: rule__SoftwareComponent__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__SoftwareComponent__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28401:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28402:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28402:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28403:1: RULE_ID
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__SoftwareComponent__IdAssignment_156247); 
+             after(grammarAccess.getSoftwareComponentAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__IdAssignment_1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28412:1: rule__SoftwareComponent__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__SoftwareComponent__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28416:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28417:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28417:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28418:1: ruleEString
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__SoftwareComponent__NameAssignment_456278);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__NameAssignment_4"
+
+
+    // $ANTLR start "rule__SoftwareComponent__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28427:1: rule__SoftwareComponent__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__SoftwareComponent__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28431:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28432:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28432:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28433:1: ruleEString
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__SoftwareComponent__AlternativeNamesAssignment_5_256309);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28442:1: rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28446:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28447:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28447:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28448:1: ruleEString
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__SoftwareComponent__AlternativeNamesAssignment_5_3_156340);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__SoftwareComponent__DeployedOnAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28457:1: rule__SoftwareComponent__DeployedOnAssignment_7 : ( ( ruleEString ) ) ;
+    public final void rule__SoftwareComponent__DeployedOnAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28461:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28462:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28462:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28463:1: ( ruleEString )
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28464:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28465:1: ruleEString
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__SoftwareComponent__DeployedOnAssignment_756375);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeEStringParserRuleCall_7_0_1()); 
+
+            }
+
+             after(grammarAccess.getSoftwareComponentAccess().getDeployedOnNodeCrossReference_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__DeployedOnAssignment_7"
+
+
+    // $ANTLR start "rule__SoftwareComponent__TrafficSourcesAssignment_8_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28476:1: rule__SoftwareComponent__TrafficSourcesAssignment_8_2 : ( ruleTrafficSource ) ;
+    public final void rule__SoftwareComponent__TrafficSourcesAssignment_8_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28480:1: ( ( ruleTrafficSource ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28481:1: ( ruleTrafficSource )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28481:1: ( ruleTrafficSource )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28482:1: ruleTrafficSource
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleTrafficSource_in_rule__SoftwareComponent__TrafficSourcesAssignment_8_256410);
+            ruleTrafficSource();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__TrafficSourcesAssignment_8_2"
+
+
+    // $ANTLR start "rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28491:1: rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1 : ( ruleTrafficSource ) ;
+    public final void rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28495:1: ( ( ruleTrafficSource ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28496:1: ( ruleTrafficSource )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28496:1: ( ruleTrafficSource )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28497:1: ruleTrafficSource
+            {
+             before(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleTrafficSource_in_rule__SoftwareComponent__TrafficSourcesAssignment_8_3_156441);
+            ruleTrafficSource();
+
+            state._fsp--;
+
+             after(grammarAccess.getSoftwareComponentAccess().getTrafficSourcesTrafficSourceParserRuleCall_8_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1"
+
+
+    // $ANTLR start "rule__EntityAddress__AddressAssignment_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28506:1: rule__EntityAddress__AddressAssignment_3_1 : ( ruleEString ) ;
+    public final void rule__EntityAddress__AddressAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28510:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28511:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28511:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28512:1: ruleEString
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__EntityAddress__AddressAssignment_3_156472);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEntityAddressAccess().getAddressEStringParserRuleCall_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__AddressAssignment_3_1"
+
+
+    // $ANTLR start "rule__EntityAddress__AddressGivenByAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28521:1: rule__EntityAddress__AddressGivenByAssignment_4_1 : ( ( ruleEString ) ) ;
+    public final void rule__EntityAddress__AddressGivenByAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28525:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28526:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28526:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28527:1: ( ruleEString )
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28528:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28529:1: ruleEString
+            {
+             before(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__EntityAddress__AddressGivenByAssignment_4_156507);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolEStringParserRuleCall_4_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getEntityAddressAccess().getAddressGivenByNetworkProtocolCrossReference_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EntityAddress__AddressGivenByAssignment_4_1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__StartStateAssignment_0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28540:1: rule__ONOFFFlow__StartStateAssignment_0 : ( ( 'startState' ) ) ;
+    public final void rule__ONOFFFlow__StartStateAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28544:1: ( ( ( 'startState' ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28545:1: ( ( 'startState' ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28545:1: ( ( 'startState' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28546:1: ( 'startState' )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28547:1: ( 'startState' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28548:1: 'startState'
+            {
+             before(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); 
+            match(input,159,FollowSets002.FOLLOW_159_in_rule__ONOFFFlow__StartStateAssignment_056547); 
+             after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getStartStateStartStateKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__StartStateAssignment_0"
+
+
+    // $ANTLR start "rule__ONOFFFlow__IdAssignment_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28563:1: rule__ONOFFFlow__IdAssignment_2 : ( RULE_ID ) ;
+    public final void rule__ONOFFFlow__IdAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28567:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28568:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28568:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28569:1: RULE_ID
+            {
+             before(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__ONOFFFlow__IdAssignment_256586); 
+             after(grammarAccess.getONOFFFlowAccess().getIdIDTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__IdAssignment_2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__NameAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28578:1: rule__ONOFFFlow__NameAssignment_5 : ( ruleEString ) ;
+    public final void rule__ONOFFFlow__NameAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28582:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28583:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28583:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28584:1: ruleEString
+            {
+             before(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ONOFFFlow__NameAssignment_556617);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getNameEStringParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__NameAssignment_5"
+
+
+    // $ANTLR start "rule__ONOFFFlow__AlternativeNamesAssignment_6_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28593:1: rule__ONOFFFlow__AlternativeNamesAssignment_6_2 : ( ruleEString ) ;
+    public final void rule__ONOFFFlow__AlternativeNamesAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28597:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28598:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28598:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28599:1: ruleEString
+            {
+             before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ONOFFFlow__AlternativeNamesAssignment_6_256648);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__AlternativeNamesAssignment_6_2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28608:1: rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1 : ( ruleEString ) ;
+    public final void rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28612:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28613:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28613:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28614:1: ruleEString
+            {
+             before(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ONOFFFlow__AlternativeNamesAssignment_6_3_156679);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28623:1: rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1 : ( ( ruleEString ) ) ;
+    public final void rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28627:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28628:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28628:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28629:1: ( ruleEString )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28630:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28631:1: ruleEString
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_156714);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28642:1: rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1 : ( ( ruleEString ) ) ;
+    public final void rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28646:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28647:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28647:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28648:1: ( ruleEString )
+            {
+             before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28649:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28650:1: ruleEString
+            {
+             before(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_156753);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_8_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getONOFFFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__DestinationAddressesAssignment_9_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28661:1: rule__ONOFFFlow__DestinationAddressesAssignment_9_2 : ( ruleEntityAddress ) ;
+    public final void rule__ONOFFFlow__DestinationAddressesAssignment_9_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28665:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28666:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28666:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28667:1: ruleEntityAddress
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__ONOFFFlow__DestinationAddressesAssignment_9_256788);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__DestinationAddressesAssignment_9_2"
+
+
+    // $ANTLR start "rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28676:1: rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1 : ( ruleEntityAddress ) ;
+    public final void rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28680:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28681:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28681:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28682:1: ruleEntityAddress
+            {
+             before(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__ONOFFFlow__DestinationAddressesAssignment_9_3_156819);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_9_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1"
+
+
+    // $ANTLR start "rule__ONOFFFlow__ONstateIATAssignment_11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28691:1: rule__ONOFFFlow__ONstateIATAssignment_11 : ( ruleDependency ) ;
+    public final void rule__ONOFFFlow__ONstateIATAssignment_11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28695:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28696:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28696:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28697:1: ruleDependency
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ONOFFFlow__ONstateIATAssignment_1156850);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getONstateIATDependencyParserRuleCall_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__ONstateIATAssignment_11"
+
+
+    // $ANTLR start "rule__ONOFFFlow__ONstateDurationAssignment_13"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28706:1: rule__ONOFFFlow__ONstateDurationAssignment_13 : ( ruleDependency ) ;
+    public final void rule__ONOFFFlow__ONstateDurationAssignment_13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28710:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28711:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28711:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28712:1: ruleDependency
+            {
+             before(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ONOFFFlow__ONstateDurationAssignment_1356881);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getONstateDurationDependencyParserRuleCall_13_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__ONstateDurationAssignment_13"
+
+
+    // $ANTLR start "rule__ONOFFFlow__OFFstateDurationAssignment_15"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28721:1: rule__ONOFFFlow__OFFstateDurationAssignment_15 : ( ruleDependency ) ;
+    public final void rule__ONOFFFlow__OFFstateDurationAssignment_15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28725:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28726:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28726:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28727:1: ruleDependency
+            {
+             before(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ONOFFFlow__OFFstateDurationAssignment_1556912);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getOFFstateDurationDependencyParserRuleCall_15_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__OFFstateDurationAssignment_15"
+
+
+    // $ANTLR start "rule__ONOFFFlow__PacketLengthAssignment_17"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28736:1: rule__ONOFFFlow__PacketLengthAssignment_17 : ( ruleDependency ) ;
+    public final void rule__ONOFFFlow__PacketLengthAssignment_17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28740:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28741:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28741:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28742:1: ruleDependency
+            {
+             before(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__ONOFFFlow__PacketLengthAssignment_1756943);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getONOFFFlowAccess().getPacketLengthDependencyParserRuleCall_17_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ONOFFFlow__PacketLengthAssignment_17"
+
+
+    // $ANTLR start "rule__GenericFlow__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28751:1: rule__GenericFlow__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__GenericFlow__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28755:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28756:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28756:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28757:1: RULE_ID
+            {
+             before(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__GenericFlow__IdAssignment_156974); 
+             after(grammarAccess.getGenericFlowAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__IdAssignment_1"
+
+
+    // $ANTLR start "rule__GenericFlow__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28766:1: rule__GenericFlow__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__GenericFlow__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28770:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28771:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28771:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28772:1: ruleEString
+            {
+             before(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__GenericFlow__NameAssignment_457005);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__NameAssignment_4"
+
+
+    // $ANTLR start "rule__GenericFlow__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28781:1: rule__GenericFlow__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__GenericFlow__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28785:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28786:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28786:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28787:1: ruleEString
+            {
+             before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__GenericFlow__AlternativeNamesAssignment_5_257036);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__GenericFlow__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28796:1: rule__GenericFlow__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__GenericFlow__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28800:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28801:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28801:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28802:1: ruleEString
+            {
+             before(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__GenericFlow__AlternativeNamesAssignment_5_3_157067);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28811:1: rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1 : ( ( ruleEString ) ) ;
+    public final void rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28815:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28816:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28816:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28817:1: ( ruleEString )
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28818:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28819:1: ruleEString
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__GenericFlow__DestinationSoftwareComponentAssignment_6_157102);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentEStringParserRuleCall_6_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationSoftwareComponentSoftwareComponentCrossReference_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1"
+
+
+    // $ANTLR start "rule__GenericFlow__SourceSoftwareComponentAssignment_7_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28830:1: rule__GenericFlow__SourceSoftwareComponentAssignment_7_1 : ( ( ruleEString ) ) ;
+    public final void rule__GenericFlow__SourceSoftwareComponentAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28834:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28835:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28835:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28836:1: ( ruleEString )
+            {
+             before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28837:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28838:1: ruleEString
+            {
+             before(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__GenericFlow__SourceSoftwareComponentAssignment_7_157141);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentEStringParserRuleCall_7_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getGenericFlowAccess().getSourceSoftwareComponentSoftwareComponentCrossReference_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__SourceSoftwareComponentAssignment_7_1"
+
+
+    // $ANTLR start "rule__GenericFlow__DestinationAddressesAssignment_8_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28849:1: rule__GenericFlow__DestinationAddressesAssignment_8_2 : ( ruleEntityAddress ) ;
+    public final void rule__GenericFlow__DestinationAddressesAssignment_8_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28853:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28854:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28854:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28855:1: ruleEntityAddress
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__GenericFlow__DestinationAddressesAssignment_8_257176);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__DestinationAddressesAssignment_8_2"
+
+
+    // $ANTLR start "rule__GenericFlow__DestinationAddressesAssignment_8_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28864:1: rule__GenericFlow__DestinationAddressesAssignment_8_3_1 : ( ruleEntityAddress ) ;
+    public final void rule__GenericFlow__DestinationAddressesAssignment_8_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28868:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28869:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28869:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28870:1: ruleEntityAddress
+            {
+             before(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__GenericFlow__DestinationAddressesAssignment_8_3_157207);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getDestinationAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__DestinationAddressesAssignment_8_3_1"
+
+
+    // $ANTLR start "rule__GenericFlow__DataSizeAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28879:1: rule__GenericFlow__DataSizeAssignment_10 : ( ruleDependency ) ;
+    public final void rule__GenericFlow__DataSizeAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28883:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28884:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28884:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28885:1: ruleDependency
+            {
+             before(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__GenericFlow__DataSizeAssignment_1057238);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericFlowAccess().getDataSizeDependencyParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericFlow__DataSizeAssignment_10"
+
+
+    // $ANTLR start "rule__NetworkProtocol__DeliveryGuaranteedAssignment_0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28894:1: rule__NetworkProtocol__DeliveryGuaranteedAssignment_0 : ( ( 'deliveryGuaranteed' ) ) ;
+    public final void rule__NetworkProtocol__DeliveryGuaranteedAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28898:1: ( ( ( 'deliveryGuaranteed' ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28899:1: ( ( 'deliveryGuaranteed' ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28899:1: ( ( 'deliveryGuaranteed' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28900:1: ( 'deliveryGuaranteed' )
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28901:1: ( 'deliveryGuaranteed' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28902:1: 'deliveryGuaranteed'
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); 
+            match(input,160,FollowSets002.FOLLOW_160_in_rule__NetworkProtocol__DeliveryGuaranteedAssignment_057274); 
+             after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getNetworkProtocolAccess().getDeliveryGuaranteedDeliveryGuaranteedKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__DeliveryGuaranteedAssignment_0"
+
+
+    // $ANTLR start "rule__NetworkProtocol__NameAssignment_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28917:1: rule__NetworkProtocol__NameAssignment_2 : ( ruleEString ) ;
+    public final void rule__NetworkProtocol__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28921:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28922:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28922:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28923:1: ruleEString
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__NetworkProtocol__NameAssignment_257313);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getNameEStringParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__NameAssignment_2"
+
+
+    // $ANTLR start "rule__NetworkProtocol__AlternativeNamesAssignment_4_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28932:1: rule__NetworkProtocol__AlternativeNamesAssignment_4_2 : ( ruleEString ) ;
+    public final void rule__NetworkProtocol__AlternativeNamesAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28936:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28937:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28937:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28938:1: ruleEString
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__NetworkProtocol__AlternativeNamesAssignment_4_257344);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__AlternativeNamesAssignment_4_2"
+
+
+    // $ANTLR start "rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28947:1: rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1 : ( ruleEString ) ;
+    public final void rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28951:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28952:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28952:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28953:1: ruleEString
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__NetworkProtocol__AlternativeNamesAssignment_4_3_157375);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getAlternativeNamesEStringParserRuleCall_4_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1"
+
+
+    // $ANTLR start "rule__NetworkProtocol__MtuAssignment_6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28962:1: rule__NetworkProtocol__MtuAssignment_6 : ( ruleEInt ) ;
+    public final void rule__NetworkProtocol__MtuAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28966:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28967:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28967:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28968:1: ruleEInt
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__NetworkProtocol__MtuAssignment_657406);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getMtuEIntParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__MtuAssignment_6"
+
+
+    // $ANTLR start "rule__NetworkProtocol__HeadersLengthAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28977:1: rule__NetworkProtocol__HeadersLengthAssignment_8 : ( ruleEInt ) ;
+    public final void rule__NetworkProtocol__HeadersLengthAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28981:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28982:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28982:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28983:1: ruleEInt
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__NetworkProtocol__HeadersLengthAssignment_857437);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getHeadersLengthEIntParserRuleCall_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__HeadersLengthAssignment_8"
+
+
+    // $ANTLR start "rule__NetworkProtocol__DataUnitLengthAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28992:1: rule__NetworkProtocol__DataUnitLengthAssignment_10 : ( ruleEInt ) ;
+    public final void rule__NetworkProtocol__DataUnitLengthAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28996:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28997:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28997:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:28998:1: ruleEInt
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__NetworkProtocol__DataUnitLengthAssignment_1057468);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getDataUnitLengthEIntParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__DataUnitLengthAssignment_10"
+
+
+    // $ANTLR start "rule__NetworkProtocol__ConnectionlessAssignment_11_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29007:1: rule__NetworkProtocol__ConnectionlessAssignment_11_1 : ( ruleEBoolean ) ;
+    public final void rule__NetworkProtocol__ConnectionlessAssignment_11_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29011:1: ( ( ruleEBoolean ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29012:1: ( ruleEBoolean )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29012:1: ( ruleEBoolean )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29013:1: ruleEBoolean
+            {
+             before(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEBoolean_in_rule__NetworkProtocol__ConnectionlessAssignment_11_157499);
+            ruleEBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getNetworkProtocolAccess().getConnectionlessEBooleanParserRuleCall_11_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__NetworkProtocol__ConnectionlessAssignment_11_1"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__ValueAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29022:1: rule__ConstantDoubleVariable__ValueAssignment_3 : ( ruleEDouble ) ;
+    public final void rule__ConstantDoubleVariable__ValueAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29026:1: ( ( ruleEDouble ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29027:1: ( ruleEDouble )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29027:1: ( ruleEDouble )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29028:1: ruleEDouble
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEDouble_in_rule__ConstantDoubleVariable__ValueAssignment_357530);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getValueEDoubleParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__ValueAssignment_3"
+
+
+    // $ANTLR start "rule__ConstantDoubleVariable__UnitAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29037:1: rule__ConstantDoubleVariable__UnitAssignment_4_1 : ( ruleDNIUnit ) ;
+    public final void rule__ConstantDoubleVariable__UnitAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29041:1: ( ( ruleDNIUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29042:1: ( ruleDNIUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29042:1: ( ruleDNIUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29043:1: ruleDNIUnit
+            {
+             before(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDNIUnit_in_rule__ConstantDoubleVariable__UnitAssignment_4_157561);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDoubleVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDoubleVariable__UnitAssignment_4_1"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__ValueAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29052:1: rule__ConstantLongVariable__ValueAssignment_3 : ( ruleELong ) ;
+    public final void rule__ConstantLongVariable__ValueAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29056:1: ( ( ruleELong ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29057:1: ( ruleELong )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29057:1: ( ruleELong )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29058:1: ruleELong
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleELong_in_rule__ConstantLongVariable__ValueAssignment_357592);
+            ruleELong();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantLongVariableAccess().getValueELongParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__ValueAssignment_3"
+
+
+    // $ANTLR start "rule__ConstantLongVariable__UnitAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29067:1: rule__ConstantLongVariable__UnitAssignment_4_1 : ( ruleDNIUnit ) ;
+    public final void rule__ConstantLongVariable__UnitAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29071:1: ( ( ruleDNIUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29072:1: ( ruleDNIUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29072:1: ( ruleDNIUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29073:1: ruleDNIUnit
+            {
+             before(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDNIUnit_in_rule__ConstantLongVariable__UnitAssignment_4_157623);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantLongVariableAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantLongVariable__UnitAssignment_4_1"
+
+
+    // $ANTLR start "rule__RandomVariable__UnitAssignment_2_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29082:1: rule__RandomVariable__UnitAssignment_2_1 : ( ruleDNIUnit ) ;
+    public final void rule__RandomVariable__UnitAssignment_2_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29086:1: ( ( ruleDNIUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29087:1: ( ruleDNIUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29087:1: ( ruleDNIUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29088:1: ruleDNIUnit
+            {
+             before(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDNIUnit_in_rule__RandomVariable__UnitAssignment_2_157654);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getRandomVariableAccess().getUnitDNIUnitParserRuleCall_2_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__UnitAssignment_2_1"
+
+
+    // $ANTLR start "rule__RandomVariable__CdfAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29097:1: rule__RandomVariable__CdfAssignment_4 : ( ruleFunction ) ;
+    public final void rule__RandomVariable__CdfAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29101:1: ( ( ruleFunction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29102:1: ( ruleFunction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29102:1: ( ruleFunction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29103:1: ruleFunction
+            {
+             before(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleFunction_in_rule__RandomVariable__CdfAssignment_457685);
+            ruleFunction();
+
+            state._fsp--;
+
+             after(grammarAccess.getRandomVariableAccess().getCdfFunctionParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RandomVariable__CdfAssignment_4"
+
+
+    // $ANTLR start "rule__ContinuousFunction__NumArgsAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29112:1: rule__ContinuousFunction__NumArgsAssignment_3 : ( ruleEInt ) ;
+    public final void rule__ContinuousFunction__NumArgsAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29116:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29117:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29117:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29118:1: ruleEInt
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__ContinuousFunction__NumArgsAssignment_357716);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getContinuousFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__NumArgsAssignment_3"
+
+
+    // $ANTLR start "rule__ContinuousFunction__EquationAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29127:1: rule__ContinuousFunction__EquationAssignment_5 : ( ruleEString ) ;
+    public final void rule__ContinuousFunction__EquationAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29131:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29132:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29132:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29133:1: ruleEString
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ContinuousFunction__EquationAssignment_557747);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getContinuousFunctionAccess().getEquationEStringParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__EquationAssignment_5"
+
+
+    // $ANTLR start "rule__ContinuousFunction__UnitAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29142:1: rule__ContinuousFunction__UnitAssignment_6_1 : ( ruleDNIUnit ) ;
+    public final void rule__ContinuousFunction__UnitAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29146:1: ( ( ruleDNIUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29147:1: ( ruleDNIUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29147:1: ( ruleDNIUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29148:1: ruleDNIUnit
+            {
+             before(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDNIUnit_in_rule__ContinuousFunction__UnitAssignment_6_157778);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getContinuousFunctionAccess().getUnitDNIUnitParserRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ContinuousFunction__UnitAssignment_6_1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__NumArgsAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29157:1: rule__DiscreteFunction__NumArgsAssignment_3 : ( ruleEInt ) ;
+    public final void rule__DiscreteFunction__NumArgsAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29161:1: ( ( ruleEInt ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29162:1: ( ruleEInt )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29162:1: ( ruleEInt )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29163:1: ruleEInt
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEInt_in_rule__DiscreteFunction__NumArgsAssignment_357809);
+            ruleEInt();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionAccess().getNumArgsEIntParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__NumArgsAssignment_3"
+
+
+    // $ANTLR start "rule__DiscreteFunction__UnitAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29172:1: rule__DiscreteFunction__UnitAssignment_4_1 : ( ruleDNIUnit ) ;
+    public final void rule__DiscreteFunction__UnitAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29176:1: ( ( ruleDNIUnit ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29177:1: ( ruleDNIUnit )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29177:1: ( ruleDNIUnit )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29178:1: ruleDNIUnit
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDNIUnit_in_rule__DiscreteFunction__UnitAssignment_4_157840);
+            ruleDNIUnit();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionAccess().getUnitDNIUnitParserRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__UnitAssignment_4_1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__XAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29187:1: rule__DiscreteFunction__XAssignment_7 : ( ruleDataSeries ) ;
+    public final void rule__DiscreteFunction__XAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29191:1: ( ( ruleDataSeries ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29192:1: ( ruleDataSeries )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29192:1: ( ruleDataSeries )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29193:1: ruleDataSeries
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__XAssignment_757871);
+            ruleDataSeries();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__XAssignment_7"
+
+
+    // $ANTLR start "rule__DiscreteFunction__XAssignment_8_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29202:1: rule__DiscreteFunction__XAssignment_8_1 : ( ruleDataSeries ) ;
+    public final void rule__DiscreteFunction__XAssignment_8_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29206:1: ( ( ruleDataSeries ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29207:1: ( ruleDataSeries )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29207:1: ( ruleDataSeries )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29208:1: ruleDataSeries
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__XAssignment_8_157902);
+            ruleDataSeries();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionAccess().getXDataSeriesParserRuleCall_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__XAssignment_8_1"
+
+
+    // $ANTLR start "rule__DiscreteFunction__YAssignment_11"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29217:1: rule__DiscreteFunction__YAssignment_11 : ( ruleDataSeries ) ;
+    public final void rule__DiscreteFunction__YAssignment_11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29221:1: ( ( ruleDataSeries ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29222:1: ( ruleDataSeries )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29222:1: ( ruleDataSeries )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29223:1: ruleDataSeries
+            {
+             before(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__YAssignment_1157933);
+            ruleDataSeries();
+
+            state._fsp--;
+
+             after(grammarAccess.getDiscreteFunctionAccess().getYDataSeriesParserRuleCall_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DiscreteFunction__YAssignment_11"
+
+
+    // $ANTLR start "rule__SpeedUnit__PrefixAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29232:1: rule__SpeedUnit__PrefixAssignment_3 : ( ruleUnitPrefix ) ;
+    public final void rule__SpeedUnit__PrefixAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29236:1: ( ( ruleUnitPrefix ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29237:1: ( ruleUnitPrefix )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29237:1: ( ruleUnitPrefix )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29238:1: ruleUnitPrefix
+            {
+             before(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleUnitPrefix_in_rule__SpeedUnit__PrefixAssignment_357964);
+            ruleUnitPrefix();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpeedUnitAccess().getPrefixUnitPrefixEnumRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__PrefixAssignment_3"
+
+
+    // $ANTLR start "rule__SpeedUnit__ValueAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29247:1: rule__SpeedUnit__ValueAssignment_5 : ( ruleEFloat ) ;
+    public final void rule__SpeedUnit__ValueAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29251:1: ( ( ruleEFloat ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29252:1: ( ruleEFloat )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29252:1: ( ruleEFloat )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29253:1: ruleEFloat
+            {
+             before(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEFloat_in_rule__SpeedUnit__ValueAssignment_557995);
+            ruleEFloat();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpeedUnitAccess().getValueEFloatParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__ValueAssignment_5"
+
+
+    // $ANTLR start "rule__SpeedUnit__UnitAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29262:1: rule__SpeedUnit__UnitAssignment_7 : ( ruleSpeed ) ;
+    public final void rule__SpeedUnit__UnitAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29266:1: ( ( ruleSpeed ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29267:1: ( ruleSpeed )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29267:1: ( ruleSpeed )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29268:1: ruleSpeed
+            {
+             before(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleSpeed_in_rule__SpeedUnit__UnitAssignment_758026);
+            ruleSpeed();
+
+            state._fsp--;
+
+             after(grammarAccess.getSpeedUnitAccess().getUnitSpeedEnumRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SpeedUnit__UnitAssignment_7"
+
+
+    // $ANTLR start "rule__DataSeries__DataAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29277:1: rule__DataSeries__DataAssignment_3_2 : ( ruleEDouble ) ;
+    public final void rule__DataSeries__DataAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29281:1: ( ( ruleEDouble ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29282:1: ( ruleEDouble )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29282:1: ( ruleEDouble )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29283:1: ruleEDouble
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEDouble_in_rule__DataSeries__DataAssignment_3_258057);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__DataAssignment_3_2"
+
+
+    // $ANTLR start "rule__DataSeries__DataAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29292:1: rule__DataSeries__DataAssignment_3_3_1 : ( ruleEDouble ) ;
+    public final void rule__DataSeries__DataAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29296:1: ( ( ruleEDouble ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29297:1: ( ruleEDouble )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29297:1: ( ruleEDouble )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29298:1: ruleEDouble
+            {
+             before(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEDouble_in_rule__DataSeries__DataAssignment_3_3_158088);
+            ruleEDouble();
+
+            state._fsp--;
+
+             after(grammarAccess.getDataSeriesAccess().getDataEDoubleParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DataSeries__DataAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__TrafficSource__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29307:1: rule__TrafficSource__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__TrafficSource__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29311:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29312:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29312:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29313:1: RULE_ID
+            {
+             before(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__TrafficSource__IdAssignment_158119); 
+             after(grammarAccess.getTrafficSourceAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__IdAssignment_1"
+
+
+    // $ANTLR start "rule__TrafficSource__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29322:1: rule__TrafficSource__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__TrafficSource__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29326:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29327:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29327:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29328:1: ruleEString
+            {
+             before(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__TrafficSource__NameAssignment_458150);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__NameAssignment_4"
+
+
+    // $ANTLR start "rule__TrafficSource__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29337:1: rule__TrafficSource__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__TrafficSource__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29341:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29342:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29342:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29343:1: ruleEString
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__TrafficSource__AlternativeNamesAssignment_5_258181);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__TrafficSource__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29352:1: rule__TrafficSource__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__TrafficSource__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29356:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29357:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29357:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29358:1: ruleEString
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__TrafficSource__AlternativeNamesAssignment_5_3_158212);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__TrafficSource__AddressesAssignment_6_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29367:1: rule__TrafficSource__AddressesAssignment_6_2 : ( ruleEntityAddress ) ;
+    public final void rule__TrafficSource__AddressesAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29371:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29372:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29372:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29373:1: ruleEntityAddress
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__TrafficSource__AddressesAssignment_6_258243);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__AddressesAssignment_6_2"
+
+
+    // $ANTLR start "rule__TrafficSource__AddressesAssignment_6_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29382:1: rule__TrafficSource__AddressesAssignment_6_3_1 : ( ruleEntityAddress ) ;
+    public final void rule__TrafficSource__AddressesAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29386:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29387:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29387:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29388:1: ruleEntityAddress
+            {
+             before(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__TrafficSource__AddressesAssignment_6_3_158274);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getAddressesEntityAddressParserRuleCall_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__AddressesAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__TrafficSource__WorkloadAssignment_9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29397:1: rule__TrafficSource__WorkloadAssignment_9 : ( ruleWorkload ) ;
+    public final void rule__TrafficSource__WorkloadAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29401:1: ( ( ruleWorkload ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29402:1: ( ruleWorkload )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29402:1: ( ruleWorkload )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29403:1: ruleWorkload
+            {
+             before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleWorkload_in_rule__TrafficSource__WorkloadAssignment_958305);
+            ruleWorkload();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__WorkloadAssignment_9"
+
+
+    // $ANTLR start "rule__TrafficSource__WorkloadAssignment_10_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29412:1: rule__TrafficSource__WorkloadAssignment_10_1 : ( ruleWorkload ) ;
+    public final void rule__TrafficSource__WorkloadAssignment_10_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29416:1: ( ( ruleWorkload ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29417:1: ( ruleWorkload )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29417:1: ( ruleWorkload )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29418:1: ruleWorkload
+            {
+             before(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleWorkload_in_rule__TrafficSource__WorkloadAssignment_10_158336);
+            ruleWorkload();
+
+            state._fsp--;
+
+             after(grammarAccess.getTrafficSourceAccess().getWorkloadWorkloadParserRuleCall_10_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TrafficSource__WorkloadAssignment_10_1"
+
+
+    // $ANTLR start "rule__GenericWorkload__ActionsAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29427:1: rule__GenericWorkload__ActionsAssignment_3_2 : ( ruleAbstractAction ) ;
+    public final void rule__GenericWorkload__ActionsAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29431:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29432:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29432:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29433:1: ruleAbstractAction
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__GenericWorkload__ActionsAssignment_3_258367);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__ActionsAssignment_3_2"
+
+
+    // $ANTLR start "rule__GenericWorkload__ActionsAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29442:1: rule__GenericWorkload__ActionsAssignment_3_3_1 : ( ruleAbstractAction ) ;
+    public final void rule__GenericWorkload__ActionsAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29446:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29447:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29447:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29448:1: ruleAbstractAction
+            {
+             before(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__GenericWorkload__ActionsAssignment_3_3_158398);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getGenericWorkloadAccess().getActionsAbstractActionParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GenericWorkload__ActionsAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__BranchAction__InternAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29457:1: rule__BranchAction__InternAssignment_4 : ( ruleAbstractAction ) ;
+    public final void rule__BranchAction__InternAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29461:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29462:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29462:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29463:1: ruleAbstractAction
+            {
+             before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__BranchAction__InternAssignment_458429);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__InternAssignment_4"
+
+
+    // $ANTLR start "rule__BranchAction__InternAssignment_5_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29472:1: rule__BranchAction__InternAssignment_5_1 : ( ruleAbstractAction ) ;
+    public final void rule__BranchAction__InternAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29476:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29477:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29477:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29478:1: ruleAbstractAction
+            {
+             before(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__BranchAction__InternAssignment_5_158460);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getBranchActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BranchAction__InternAssignment_5_1"
+
+
+    // $ANTLR start "rule__LoopAction__InternAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29487:1: rule__LoopAction__InternAssignment_3 : ( ruleAbstractAction ) ;
+    public final void rule__LoopAction__InternAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29491:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29492:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29492:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29493:1: ruleAbstractAction
+            {
+             before(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__LoopAction__InternAssignment_358491);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionAccess().getInternAbstractActionParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__InternAssignment_3"
+
+
+    // $ANTLR start "rule__LoopAction__NumIterationsAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29502:1: rule__LoopAction__NumIterationsAssignment_5 : ( ruleDependency ) ;
+    public final void rule__LoopAction__NumIterationsAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29506:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29507:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29507:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29508:1: ruleDependency
+            {
+             before(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__LoopAction__NumIterationsAssignment_558522);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopActionAccess().getNumIterationsDependencyParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__LoopAction__NumIterationsAssignment_5"
+
+
+    // $ANTLR start "rule__SequenceAction__InternAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29517:1: rule__SequenceAction__InternAssignment_4 : ( ruleAbstractAction ) ;
+    public final void rule__SequenceAction__InternAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29521:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29522:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29522:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29523:1: ruleAbstractAction
+            {
+             before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__SequenceAction__InternAssignment_458553);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__InternAssignment_4"
+
+
+    // $ANTLR start "rule__SequenceAction__InternAssignment_5_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29532:1: rule__SequenceAction__InternAssignment_5_1 : ( ruleAbstractAction ) ;
+    public final void rule__SequenceAction__InternAssignment_5_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29536:1: ( ( ruleAbstractAction ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29537:1: ( ruleAbstractAction )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29537:1: ( ruleAbstractAction )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29538:1: ruleAbstractAction
+            {
+             before(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleAbstractAction_in_rule__SequenceAction__InternAssignment_5_158584);
+            ruleAbstractAction();
+
+            state._fsp--;
+
+             after(grammarAccess.getSequenceActionAccess().getInternAbstractActionParserRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceAction__InternAssignment_5_1"
+
+
+    // $ANTLR start "rule__TransmitAction__FlowAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29547:1: rule__TransmitAction__FlowAssignment_3 : ( ( ruleEString ) ) ;
+    public final void rule__TransmitAction__FlowAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29551:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29552:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29552:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29553:1: ( ruleEString )
+            {
+             before(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29554:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29555:1: ruleEString
+            {
+             before(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__TransmitAction__FlowAssignment_358619);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getTransmitActionAccess().getFlowFlowEStringParserRuleCall_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getTransmitActionAccess().getFlowFlowCrossReference_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TransmitAction__FlowAssignment_3"
+
+
+    // $ANTLR start "rule__WaitAction__WaitTimeAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29566:1: rule__WaitAction__WaitTimeAssignment_3 : ( ruleDependency ) ;
+    public final void rule__WaitAction__WaitTimeAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29570:1: ( ( ruleDependency ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29571:1: ( ruleDependency )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29571:1: ( ruleDependency )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29572:1: ruleDependency
+            {
+             before(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDependency_in_rule__WaitAction__WaitTimeAssignment_358654);
+            ruleDependency();
+
+            state._fsp--;
+
+             after(grammarAccess.getWaitActionAccess().getWaitTimeDependencyParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__WaitAction__WaitTimeAssignment_3"
+
+
+    // $ANTLR start "rule__VirtualNode__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29581:1: rule__VirtualNode__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__VirtualNode__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29585:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29586:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29586:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29587:1: RULE_ID
+            {
+             before(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__VirtualNode__IdAssignment_158685); 
+             after(grammarAccess.getVirtualNodeAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__IdAssignment_1"
+
+
+    // $ANTLR start "rule__VirtualNode__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29596:1: rule__VirtualNode__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__VirtualNode__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29600:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29601:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29601:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29602:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__NameAssignment_458716);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__NameAssignment_4"
+
+
+    // $ANTLR start "rule__VirtualNode__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29611:1: rule__VirtualNode__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__VirtualNode__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29615:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29616:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29616:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29617:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__AlternativeNamesAssignment_5_258747);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__VirtualNode__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29626:1: rule__VirtualNode__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__VirtualNode__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29630:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29631:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29631:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29632:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__AlternativeNamesAssignment_5_3_158778);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__VirtualNode__SoftwareAssignment_6_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29641:1: rule__VirtualNode__SoftwareAssignment_6_2 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualNode__SoftwareAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29645:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29646:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29646:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29647:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29648:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29649:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__SoftwareAssignment_6_258813);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__SoftwareAssignment_6_2"
+
+
+    // $ANTLR start "rule__VirtualNode__SoftwareAssignment_6_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29660:1: rule__VirtualNode__SoftwareAssignment_6_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualNode__SoftwareAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29664:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29665:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29665:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29666:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29667:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29668:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__SoftwareAssignment_6_3_158852);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__SoftwareAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__VirtualNode__HostedOnAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29679:1: rule__VirtualNode__HostedOnAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualNode__HostedOnAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29683:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29684:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29684:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29685:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29686:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29687:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNode__HostedOnAssignment_858891);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualNodeAccess().getHostedOnPhysicalNodeCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__HostedOnAssignment_8"
+
+
+    // $ANTLR start "rule__VirtualNode__PerformanceAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29698:1: rule__VirtualNode__PerformanceAssignment_10 : ( rulePerformanceSpecification ) ;
+    public final void rule__VirtualNode__PerformanceAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29702:1: ( ( rulePerformanceSpecification ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29703:1: ( rulePerformanceSpecification )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29703:1: ( rulePerformanceSpecification )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29704:1: rulePerformanceSpecification
+            {
+             before(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePerformanceSpecification_in_rule__VirtualNode__PerformanceAssignment_1058926);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__PerformanceAssignment_10"
+
+
+    // $ANTLR start "rule__VirtualNode__InterfacesAssignment_11_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29713:1: rule__VirtualNode__InterfacesAssignment_11_2 : ( ruleVirtualNetworkInterface ) ;
+    public final void rule__VirtualNode__InterfacesAssignment_11_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29717:1: ( ( ruleVirtualNetworkInterface ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29718:1: ( ruleVirtualNetworkInterface )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29718:1: ( ruleVirtualNetworkInterface )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29719:1: ruleVirtualNetworkInterface
+            {
+             before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleVirtualNetworkInterface_in_rule__VirtualNode__InterfacesAssignment_11_258957);
+            ruleVirtualNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__InterfacesAssignment_11_2"
+
+
+    // $ANTLR start "rule__VirtualNode__InterfacesAssignment_11_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29728:1: rule__VirtualNode__InterfacesAssignment_11_3_1 : ( ruleVirtualNetworkInterface ) ;
+    public final void rule__VirtualNode__InterfacesAssignment_11_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29732:1: ( ( ruleVirtualNetworkInterface ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29733:1: ( ruleVirtualNetworkInterface )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29733:1: ( ruleVirtualNetworkInterface )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29734:1: ruleVirtualNetworkInterface
+            {
+             before(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleVirtualNetworkInterface_in_rule__VirtualNode__InterfacesAssignment_11_3_158988);
+            ruleVirtualNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNodeAccess().getInterfacesVirtualNetworkInterfaceParserRuleCall_11_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNode__InterfacesAssignment_11_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNode__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29743:1: rule__PhysicalNode__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__PhysicalNode__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29747:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29748:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29748:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29749:1: RULE_ID
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__PhysicalNode__IdAssignment_159019); 
+             after(grammarAccess.getPhysicalNodeAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__IdAssignment_1"
+
+
+    // $ANTLR start "rule__PhysicalNode__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29758:1: rule__PhysicalNode__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__PhysicalNode__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29762:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29763:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29763:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29764:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__NameAssignment_459050);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__NameAssignment_4"
+
+
+    // $ANTLR start "rule__PhysicalNode__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29773:1: rule__PhysicalNode__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__PhysicalNode__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29777:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29778:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29778:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29779:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__AlternativeNamesAssignment_5_259081);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__PhysicalNode__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29788:1: rule__PhysicalNode__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__PhysicalNode__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29792:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29793:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29793:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29794:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__AlternativeNamesAssignment_5_3_159112);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNode__SoftwareAssignment_6_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29803:1: rule__PhysicalNode__SoftwareAssignment_6_2 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalNode__SoftwareAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29807:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29808:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29808:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29809:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29810:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29811:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__SoftwareAssignment_6_259147);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__SoftwareAssignment_6_2"
+
+
+    // $ANTLR start "rule__PhysicalNode__SoftwareAssignment_6_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29822:1: rule__PhysicalNode__SoftwareAssignment_6_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalNode__SoftwareAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29826:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29827:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29827:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29828:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29829:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29830:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__SoftwareAssignment_6_3_159186);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentEStringParserRuleCall_6_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getSoftwareSoftwareComponentCrossReference_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__SoftwareAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNode__HostsAssignment_7_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29841:1: rule__PhysicalNode__HostsAssignment_7_2 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalNode__HostsAssignment_7_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29845:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29846:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29846:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29847:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29848:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29849:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__HostsAssignment_7_259225);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_2_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__HostsAssignment_7_2"
+
+
+    // $ANTLR start "rule__PhysicalNode__HostsAssignment_7_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29860:1: rule__PhysicalNode__HostsAssignment_7_3_1 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalNode__HostsAssignment_7_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29864:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29865:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29865:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29866:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29867:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29868:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNode__HostsAssignment_7_3_159264);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeEStringParserRuleCall_7_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalNodeAccess().getHostsVirtualNodeCrossReference_7_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__HostsAssignment_7_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNode__PerformanceAssignment_9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29879:1: rule__PhysicalNode__PerformanceAssignment_9 : ( rulePerformanceSpecification ) ;
+    public final void rule__PhysicalNode__PerformanceAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29883:1: ( ( rulePerformanceSpecification ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29884:1: ( rulePerformanceSpecification )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29884:1: ( rulePerformanceSpecification )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29885:1: rulePerformanceSpecification
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePerformanceSpecification_in_rule__PhysicalNode__PerformanceAssignment_959299);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getPerformancePerformanceSpecificationParserRuleCall_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__PerformanceAssignment_9"
+
+
+    // $ANTLR start "rule__PhysicalNode__InterfacesAssignment_10_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29894:1: rule__PhysicalNode__InterfacesAssignment_10_2 : ( ruleNetworkInterface ) ;
+    public final void rule__PhysicalNode__InterfacesAssignment_10_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29898:1: ( ( ruleNetworkInterface ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29899:1: ( ruleNetworkInterface )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29899:1: ( ruleNetworkInterface )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29900:1: ruleNetworkInterface
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkInterface_in_rule__PhysicalNode__InterfacesAssignment_10_259330);
+            ruleNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__InterfacesAssignment_10_2"
+
+
+    // $ANTLR start "rule__PhysicalNode__InterfacesAssignment_10_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29909:1: rule__PhysicalNode__InterfacesAssignment_10_3_1 : ( ruleNetworkInterface ) ;
+    public final void rule__PhysicalNode__InterfacesAssignment_10_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29913:1: ( ( ruleNetworkInterface ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29914:1: ( ruleNetworkInterface )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29914:1: ( ruleNetworkInterface )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29915:1: ruleNetworkInterface
+            {
+             before(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkInterface_in_rule__PhysicalNode__InterfacesAssignment_10_3_159361);
+            ruleNetworkInterface();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNodeAccess().getInterfacesNetworkInterfaceParserRuleCall_10_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNode__InterfacesAssignment_10_3_1"
+
+
+    // $ANTLR start "rule__PhysicalLink__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29924:1: rule__PhysicalLink__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__PhysicalLink__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29928:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29929:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29929:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29930:1: RULE_ID
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__PhysicalLink__IdAssignment_159392); 
+             after(grammarAccess.getPhysicalLinkAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__IdAssignment_1"
+
+
+    // $ANTLR start "rule__PhysicalLink__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29939:1: rule__PhysicalLink__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__PhysicalLink__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29943:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29944:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29944:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29945:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalLink__NameAssignment_459423);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__NameAssignment_4"
+
+
+    // $ANTLR start "rule__PhysicalLink__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29954:1: rule__PhysicalLink__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__PhysicalLink__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29958:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29959:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29959:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29960:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalLink__AlternativeNamesAssignment_5_259454);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__PhysicalLink__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29969:1: rule__PhysicalLink__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__PhysicalLink__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29973:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29974:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29974:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29975:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalLink__AlternativeNamesAssignment_5_3_159485);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__PhysicalLink__ConnectsAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29984:1: rule__PhysicalLink__ConnectsAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalLink__ConnectsAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29988:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29989:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29989:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29990:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29991:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:29992:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalLink__ConnectsAssignment_859520);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__ConnectsAssignment_8"
+
+
+    // $ANTLR start "rule__PhysicalLink__ConnectsAssignment_9_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30003:1: rule__PhysicalLink__ConnectsAssignment_9_1 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalLink__ConnectsAssignment_9_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30007:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30008:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30008:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30009:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30010:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30011:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalLink__ConnectsAssignment_9_159559);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceEStringParserRuleCall_9_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalLinkAccess().getConnectsPhysicalNetworkInterfaceCrossReference_9_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__ConnectsAssignment_9_1"
+
+
+    // $ANTLR start "rule__PhysicalLink__PerformanceAssignment_12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30022:1: rule__PhysicalLink__PerformanceAssignment_12 : ( rulePerformanceSpecification ) ;
+    public final void rule__PhysicalLink__PerformanceAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30026:1: ( ( rulePerformanceSpecification ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30027:1: ( rulePerformanceSpecification )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30027:1: ( rulePerformanceSpecification )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30028:1: rulePerformanceSpecification
+            {
+             before(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePerformanceSpecification_in_rule__PhysicalLink__PerformanceAssignment_1259594);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalLink__PerformanceAssignment_12"
+
+
+    // $ANTLR start "rule__VirtualLink__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30037:1: rule__VirtualLink__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__VirtualLink__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30041:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30042:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30042:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30043:1: RULE_ID
+            {
+             before(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__VirtualLink__IdAssignment_159625); 
+             after(grammarAccess.getVirtualLinkAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__IdAssignment_1"
+
+
+    // $ANTLR start "rule__VirtualLink__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30052:1: rule__VirtualLink__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__VirtualLink__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30056:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30057:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30057:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30058:1: ruleEString
+            {
+             before(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualLink__NameAssignment_459656);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__NameAssignment_4"
+
+
+    // $ANTLR start "rule__VirtualLink__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30067:1: rule__VirtualLink__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__VirtualLink__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30071:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30072:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30072:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30073:1: ruleEString
+            {
+             before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualLink__AlternativeNamesAssignment_5_259687);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__VirtualLink__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30082:1: rule__VirtualLink__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__VirtualLink__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30086:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30087:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30087:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30088:1: ruleEString
+            {
+             before(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualLink__AlternativeNamesAssignment_5_3_159718);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__VirtualLink__ConnectsAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30097:1: rule__VirtualLink__ConnectsAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualLink__ConnectsAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30101:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30102:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30102:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30103:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30104:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30105:1: ruleEString
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualLink__ConnectsAssignment_859753);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__ConnectsAssignment_8"
+
+
+    // $ANTLR start "rule__VirtualLink__ConnectsAssignment_9_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30116:1: rule__VirtualLink__ConnectsAssignment_9_1 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualLink__ConnectsAssignment_9_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30120:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30121:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30121:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30122:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30123:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30124:1: ruleEString
+            {
+             before(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualLink__ConnectsAssignment_9_159792);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceEStringParserRuleCall_9_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualLinkAccess().getConnectsNetworkInterfaceCrossReference_9_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__ConnectsAssignment_9_1"
+
+
+    // $ANTLR start "rule__VirtualLink__PerformanceAssignment_12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30135:1: rule__VirtualLink__PerformanceAssignment_12 : ( rulePerformanceSpecification ) ;
+    public final void rule__VirtualLink__PerformanceAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30139:1: ( ( rulePerformanceSpecification ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30140:1: ( rulePerformanceSpecification )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30140:1: ( rulePerformanceSpecification )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30141:1: rulePerformanceSpecification
+            {
+             before(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePerformanceSpecification_in_rule__VirtualLink__PerformanceAssignment_1259827);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualLinkAccess().getPerformancePerformanceSpecificationParserRuleCall_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualLink__PerformanceAssignment_12"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__StacksAssignment_2_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30150:1: rule__ProtocolsRepository__StacksAssignment_2_2 : ( ruleProtocolStack ) ;
+    public final void rule__ProtocolsRepository__StacksAssignment_2_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30154:1: ( ( ruleProtocolStack ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30155:1: ( ruleProtocolStack )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30155:1: ( ruleProtocolStack )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30156:1: ruleProtocolStack
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleProtocolStack_in_rule__ProtocolsRepository__StacksAssignment_2_259858);
+            ruleProtocolStack();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__StacksAssignment_2_2"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__StacksAssignment_2_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30165:1: rule__ProtocolsRepository__StacksAssignment_2_3_1 : ( ruleProtocolStack ) ;
+    public final void rule__ProtocolsRepository__StacksAssignment_2_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30169:1: ( ( ruleProtocolStack ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30170:1: ( ruleProtocolStack )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30170:1: ( ruleProtocolStack )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30171:1: ruleProtocolStack
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleProtocolStack_in_rule__ProtocolsRepository__StacksAssignment_2_3_159889);
+            ruleProtocolStack();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getStacksProtocolStackParserRuleCall_2_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__StacksAssignment_2_3_1"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__ProtocolsAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30180:1: rule__ProtocolsRepository__ProtocolsAssignment_5 : ( ruleNetworkProtocol ) ;
+    public final void rule__ProtocolsRepository__ProtocolsAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30184:1: ( ( ruleNetworkProtocol ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30185:1: ( ruleNetworkProtocol )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30185:1: ( ruleNetworkProtocol )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30186:1: ruleNetworkProtocol
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkProtocol_in_rule__ProtocolsRepository__ProtocolsAssignment_559920);
+            ruleNetworkProtocol();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__ProtocolsAssignment_5"
+
+
+    // $ANTLR start "rule__ProtocolsRepository__ProtocolsAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30195:1: rule__ProtocolsRepository__ProtocolsAssignment_6_1 : ( ruleNetworkProtocol ) ;
+    public final void rule__ProtocolsRepository__ProtocolsAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30199:1: ( ( ruleNetworkProtocol ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30200:1: ( ruleNetworkProtocol )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30200:1: ( ruleNetworkProtocol )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30201:1: ruleNetworkProtocol
+            {
+             before(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleNetworkProtocol_in_rule__ProtocolsRepository__ProtocolsAssignment_6_159951);
+            ruleNetworkProtocol();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolsRepositoryAccess().getProtocolsNetworkProtocolParserRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolsRepository__ProtocolsAssignment_6_1"
+
+
+    // $ANTLR start "rule__RoutesRepository__RoutesAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30210:1: rule__RoutesRepository__RoutesAssignment_3_2 : ( ruleRoute ) ;
+    public final void rule__RoutesRepository__RoutesAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30214:1: ( ( ruleRoute ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30215:1: ( ruleRoute )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30215:1: ( ruleRoute )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30216:1: ruleRoute
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleRoute_in_rule__RoutesRepository__RoutesAssignment_3_259982);
+            ruleRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__RoutesAssignment_3_2"
+
+
+    // $ANTLR start "rule__RoutesRepository__RoutesAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30225:1: rule__RoutesRepository__RoutesAssignment_3_3_1 : ( ruleRoute ) ;
+    public final void rule__RoutesRepository__RoutesAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30229:1: ( ( ruleRoute ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30230:1: ( ruleRoute )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30230:1: ( ruleRoute )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30231:1: ruleRoute
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleRoute_in_rule__RoutesRepository__RoutesAssignment_3_3_160013);
+            ruleRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getRoutesRouteParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__RoutesAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__RoutesRepository__FlowRoutesAssignment_4_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30240:1: rule__RoutesRepository__FlowRoutesAssignment_4_2 : ( ruleFlowRoute ) ;
+    public final void rule__RoutesRepository__FlowRoutesAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30244:1: ( ( ruleFlowRoute ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30245:1: ( ruleFlowRoute )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30245:1: ( ruleFlowRoute )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30246:1: ruleFlowRoute
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleFlowRoute_in_rule__RoutesRepository__FlowRoutesAssignment_4_260044);
+            ruleFlowRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__FlowRoutesAssignment_4_2"
+
+
+    // $ANTLR start "rule__RoutesRepository__FlowRoutesAssignment_4_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30255:1: rule__RoutesRepository__FlowRoutesAssignment_4_3_1 : ( ruleFlowRoute ) ;
+    public final void rule__RoutesRepository__FlowRoutesAssignment_4_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30259:1: ( ( ruleFlowRoute ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30260:1: ( ruleFlowRoute )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30260:1: ( ruleFlowRoute )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30261:1: ruleFlowRoute
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleFlowRoute_in_rule__RoutesRepository__FlowRoutesAssignment_4_3_160075);
+            ruleFlowRoute();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getFlowRoutesFlowRouteParserRuleCall_4_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__FlowRoutesAssignment_4_3_1"
+
+
+    // $ANTLR start "rule__RoutesRepository__DirectionsAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30270:1: rule__RoutesRepository__DirectionsAssignment_5_2 : ( ruleDirection ) ;
+    public final void rule__RoutesRepository__DirectionsAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30274:1: ( ( ruleDirection ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30275:1: ( ruleDirection )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30275:1: ( ruleDirection )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30276:1: ruleDirection
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDirection_in_rule__RoutesRepository__DirectionsAssignment_5_260106);
+            ruleDirection();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__DirectionsAssignment_5_2"
+
+
+    // $ANTLR start "rule__RoutesRepository__DirectionsAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30285:1: rule__RoutesRepository__DirectionsAssignment_5_3_1 : ( ruleDirection ) ;
+    public final void rule__RoutesRepository__DirectionsAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30289:1: ( ( ruleDirection ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30290:1: ( ruleDirection )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30290:1: ( ruleDirection )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30291:1: ruleDirection
+            {
+             before(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleDirection_in_rule__RoutesRepository__DirectionsAssignment_5_3_160137);
+            ruleDirection();
+
+            state._fsp--;
+
+             after(grammarAccess.getRoutesRepositoryAccess().getDirectionsDirectionParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__RoutesRepository__DirectionsAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__ProtocolStack__NameAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30300:1: rule__ProtocolStack__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__ProtocolStack__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30304:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30305:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30305:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30306:1: ruleEString
+            {
+             before(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolStack__NameAssignment_160168);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ProtocolStack__AlternativeNamesAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30315:1: rule__ProtocolStack__AlternativeNamesAssignment_3_2 : ( ruleEString ) ;
+    public final void rule__ProtocolStack__AlternativeNamesAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30319:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30320:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30320:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30321:1: ruleEString
+            {
+             before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolStack__AlternativeNamesAssignment_3_260199);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__AlternativeNamesAssignment_3_2"
+
+
+    // $ANTLR start "rule__ProtocolStack__AlternativeNamesAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30330:1: rule__ProtocolStack__AlternativeNamesAssignment_3_3_1 : ( ruleEString ) ;
+    public final void rule__ProtocolStack__AlternativeNamesAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30334:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30335:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30335:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30336:1: ruleEString
+            {
+             before(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolStack__AlternativeNamesAssignment_3_3_160230);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__AlternativeNamesAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__ProtocolStack__LayersAssignment_6"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30345:1: rule__ProtocolStack__LayersAssignment_6 : ( ruleProtocolLayer ) ;
+    public final void rule__ProtocolStack__LayersAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30349:1: ( ( ruleProtocolLayer ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30350:1: ( ruleProtocolLayer )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30350:1: ( ruleProtocolLayer )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30351:1: ruleProtocolLayer
+            {
+             before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleProtocolLayer_in_rule__ProtocolStack__LayersAssignment_660261);
+            ruleProtocolLayer();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__LayersAssignment_6"
+
+
+    // $ANTLR start "rule__ProtocolStack__LayersAssignment_7_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30360:1: rule__ProtocolStack__LayersAssignment_7_1 : ( ruleProtocolLayer ) ;
+    public final void rule__ProtocolStack__LayersAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30364:1: ( ( ruleProtocolLayer ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30365:1: ( ruleProtocolLayer )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30365:1: ( ruleProtocolLayer )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30366:1: ruleProtocolLayer
+            {
+             before(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleProtocolLayer_in_rule__ProtocolStack__LayersAssignment_7_160292);
+            ruleProtocolLayer();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolStackAccess().getLayersProtocolLayerParserRuleCall_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolStack__LayersAssignment_7_1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__NameAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30375:1: rule__ProtocolLayer__NameAssignment_1 : ( ruleEString ) ;
+    public final void rule__ProtocolLayer__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30379:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30380:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30380:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30381:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__NameAssignment_160323);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getNameEStringParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__AlternativeNamesAssignment_3_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30390:1: rule__ProtocolLayer__AlternativeNamesAssignment_3_2 : ( ruleEString ) ;
+    public final void rule__ProtocolLayer__AlternativeNamesAssignment_3_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30394:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30395:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30395:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30396:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__AlternativeNamesAssignment_3_260354);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__AlternativeNamesAssignment_3_2"
+
+
+    // $ANTLR start "rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30405:1: rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1 : ( ruleEString ) ;
+    public final void rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30409:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30410:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30410:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30411:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__AlternativeNamesAssignment_3_3_160385);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getAlternativeNamesEStringParserRuleCall_3_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__ProtocolAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30420:1: rule__ProtocolLayer__ProtocolAssignment_5 : ( ( ruleEString ) ) ;
+    public final void rule__ProtocolLayer__ProtocolAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30424:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30425:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30425:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30426:1: ( ruleEString )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30427:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30428:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__ProtocolAssignment_560420);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolEStringParserRuleCall_5_0_1()); 
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getProtocolNetworkProtocolCrossReference_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__ProtocolAssignment_5"
+
+
+    // $ANTLR start "rule__ProtocolLayer__IsCarriedByAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30439:1: rule__ProtocolLayer__IsCarriedByAssignment_6_1 : ( ( ruleEString ) ) ;
+    public final void rule__ProtocolLayer__IsCarriedByAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30443:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30444:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30444:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30445:1: ( ruleEString )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30446:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30447:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__IsCarriedByAssignment_6_160459);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerEStringParserRuleCall_6_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getIsCarriedByProtocolLayerCrossReference_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__IsCarriedByAssignment_6_1"
+
+
+    // $ANTLR start "rule__ProtocolLayer__CarriesAssignment_7_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30458:1: rule__ProtocolLayer__CarriesAssignment_7_1 : ( ( ruleEString ) ) ;
+    public final void rule__ProtocolLayer__CarriesAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30462:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30463:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30463:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30464:1: ( ruleEString )
+            {
+             before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30465:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30466:1: ruleEString
+            {
+             before(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__ProtocolLayer__CarriesAssignment_7_160498);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerEStringParserRuleCall_7_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getProtocolLayerAccess().getCarriesProtocolLayerCrossReference_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ProtocolLayer__CarriesAssignment_7_1"
+
+
+    // $ANTLR start "rule__Route__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30477:1: rule__Route__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__Route__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30481:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30482:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30482:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30483:1: RULE_ID
+            {
+             before(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__Route__IdAssignment_160533); 
+             after(grammarAccess.getRouteAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__IdAssignment_1"
+
+
+    // $ANTLR start "rule__Route__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30492:1: rule__Route__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__Route__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30496:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30497:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30497:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30498:1: ruleEString
+            {
+             before(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Route__NameAssignment_460564);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__NameAssignment_4"
+
+
+    // $ANTLR start "rule__Route__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30507:1: rule__Route__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__Route__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30511:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30512:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30512:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30513:1: ruleEString
+            {
+             before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Route__AlternativeNamesAssignment_5_260595);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__Route__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30522:1: rule__Route__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__Route__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30526:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30527:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30527:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30528:1: ruleEString
+            {
+             before(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Route__AlternativeNamesAssignment_5_3_160626);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__Route__NumHopsAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30537:1: rule__Route__NumHopsAssignment_6_1 : ( ruleEIntegerObject ) ;
+    public final void rule__Route__NumHopsAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30541:1: ( ( ruleEIntegerObject ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30542:1: ( ruleEIntegerObject )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30542:1: ( ruleEIntegerObject )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30543:1: ruleEIntegerObject
+            {
+             before(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEIntegerObject_in_rule__Route__NumHopsAssignment_6_160657);
+            ruleEIntegerObject();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__NumHopsAssignment_6_1"
+
+
+    // $ANTLR start "rule__Route__StartAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30552:1: rule__Route__StartAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__Route__StartAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30556:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30557:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30557:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30558:1: ( ruleEString )
+            {
+             before(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30559:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30560:1: ruleEString
+            {
+             before(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Route__StartAssignment_860692);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getRouteAccess().getStartNetworkInterfaceCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__StartAssignment_8"
+
+
+    // $ANTLR start "rule__Route__EndAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30571:1: rule__Route__EndAssignment_10 : ( ( ruleEString ) ) ;
+    public final void rule__Route__EndAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30575:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30576:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30576:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30577:1: ( ruleEString )
+            {
+             before(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30578:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30579:1: ruleEString
+            {
+             before(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Route__EndAssignment_1060731);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_10_0_1()); 
+
+            }
+
+             after(grammarAccess.getRouteAccess().getEndNetworkInterfaceCrossReference_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__EndAssignment_10"
+
+
+    // $ANTLR start "rule__Route__HopsAssignment_11_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30590:1: rule__Route__HopsAssignment_11_1 : ( ruleHop ) ;
+    public final void rule__Route__HopsAssignment_11_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30594:1: ( ( ruleHop ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30595:1: ( ruleHop )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30595:1: ( ruleHop )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30596:1: ruleHop
+            {
+             before(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleHop_in_rule__Route__HopsAssignment_11_160766);
+            ruleHop();
+
+            state._fsp--;
+
+             after(grammarAccess.getRouteAccess().getHopsHopParserRuleCall_11_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Route__HopsAssignment_11_1"
+
+
+    // $ANTLR start "rule__FlowRoute__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30605:1: rule__FlowRoute__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__FlowRoute__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30609:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30610:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30610:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30611:1: RULE_ID
+            {
+             before(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__FlowRoute__IdAssignment_160797); 
+             after(grammarAccess.getFlowRouteAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__IdAssignment_1"
+
+
+    // $ANTLR start "rule__FlowRoute__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30620:1: rule__FlowRoute__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__FlowRoute__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30624:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30625:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30625:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30626:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__NameAssignment_460828);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__NameAssignment_4"
+
+
+    // $ANTLR start "rule__FlowRoute__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30635:1: rule__FlowRoute__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__FlowRoute__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30639:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30640:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30640:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30641:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__AlternativeNamesAssignment_5_260859);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__FlowRoute__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30650:1: rule__FlowRoute__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__FlowRoute__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30654:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30655:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30655:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30656:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__AlternativeNamesAssignment_5_3_160890);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__FlowRoute__NumHopsAssignment_6_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30665:1: rule__FlowRoute__NumHopsAssignment_6_1 : ( ruleEIntegerObject ) ;
+    public final void rule__FlowRoute__NumHopsAssignment_6_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30669:1: ( ( ruleEIntegerObject ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30670:1: ( ruleEIntegerObject )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30670:1: ( ruleEIntegerObject )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30671:1: ruleEIntegerObject
+            {
+             before(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEIntegerObject_in_rule__FlowRoute__NumHopsAssignment_6_160921);
+            ruleEIntegerObject();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getNumHopsEIntegerObjectParserRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__NumHopsAssignment_6_1"
+
+
+    // $ANTLR start "rule__FlowRoute__FlowAssignment_8"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30680:1: rule__FlowRoute__FlowAssignment_8 : ( ( ruleEString ) ) ;
+    public final void rule__FlowRoute__FlowAssignment_8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30684:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30685:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30685:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30686:1: ( ruleEString )
+            {
+             before(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30687:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30688:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__FlowAssignment_860956);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getFlowFlowEStringParserRuleCall_8_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getFlowFlowCrossReference_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__FlowAssignment_8"
+
+
+    // $ANTLR start "rule__FlowRoute__StartAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30699:1: rule__FlowRoute__StartAssignment_10 : ( ( ruleEString ) ) ;
+    public final void rule__FlowRoute__StartAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30703:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30704:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30704:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30705:1: ( ruleEString )
+            {
+             before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30706:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30707:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__StartAssignment_1060995);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceEStringParserRuleCall_10_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getStartNetworkInterfaceCrossReference_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__StartAssignment_10"
+
+
+    // $ANTLR start "rule__FlowRoute__EndAssignment_12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30718:1: rule__FlowRoute__EndAssignment_12 : ( ( ruleEString ) ) ;
+    public final void rule__FlowRoute__EndAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30722:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30723:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30723:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30724:1: ( ruleEString )
+            {
+             before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30725:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30726:1: ruleEString
+            {
+             before(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__FlowRoute__EndAssignment_1261034);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceEStringParserRuleCall_12_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowRouteAccess().getEndNetworkInterfaceCrossReference_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__EndAssignment_12"
+
+
+    // $ANTLR start "rule__FlowRoute__HopsAssignment_13_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30737:1: rule__FlowRoute__HopsAssignment_13_1 : ( ruleHop ) ;
+    public final void rule__FlowRoute__HopsAssignment_13_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30741:1: ( ( ruleHop ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30742:1: ( ruleHop )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30742:1: ( ruleHop )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30743:1: ruleHop
+            {
+             before(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleHop_in_rule__FlowRoute__HopsAssignment_13_161069);
+            ruleHop();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRouteAccess().getHopsHopParserRuleCall_13_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowRoute__HopsAssignment_13_1"
+
+
+    // $ANTLR start "rule__Direction__IsDefaultAssignment_0"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30752:1: rule__Direction__IsDefaultAssignment_0 : ( ( 'isDefault' ) ) ;
+    public final void rule__Direction__IsDefaultAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30756:1: ( ( ( 'isDefault' ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30757:1: ( ( 'isDefault' ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30757:1: ( ( 'isDefault' ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30758:1: ( 'isDefault' )
+            {
+             before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30759:1: ( 'isDefault' )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30760:1: 'isDefault'
+            {
+             before(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); 
+            match(input,161,FollowSets002.FOLLOW_161_in_rule__Direction__IsDefaultAssignment_061105); 
+             after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getIsDefaultIsDefaultKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__IsDefaultAssignment_0"
+
+
+    // $ANTLR start "rule__Direction__IdAssignment_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30775:1: rule__Direction__IdAssignment_2 : ( RULE_ID ) ;
+    public final void rule__Direction__IdAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30779:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30780:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30780:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30781:1: RULE_ID
+            {
+             before(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__Direction__IdAssignment_261144); 
+             after(grammarAccess.getDirectionAccess().getIdIDTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__IdAssignment_2"
+
+
+    // $ANTLR start "rule__Direction__NameAssignment_5"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30790:1: rule__Direction__NameAssignment_5 : ( ruleEString ) ;
+    public final void rule__Direction__NameAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30794:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30795:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30795:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30796:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__NameAssignment_561175);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getNameEStringParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__NameAssignment_5"
+
+
+    // $ANTLR start "rule__Direction__AlternativeNamesAssignment_6_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30805:1: rule__Direction__AlternativeNamesAssignment_6_2 : ( ruleEString ) ;
+    public final void rule__Direction__AlternativeNamesAssignment_6_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30809:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30810:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30810:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30811:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__AlternativeNamesAssignment_6_261206);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__AlternativeNamesAssignment_6_2"
+
+
+    // $ANTLR start "rule__Direction__AlternativeNamesAssignment_6_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30820:1: rule__Direction__AlternativeNamesAssignment_6_3_1 : ( ruleEString ) ;
+    public final void rule__Direction__AlternativeNamesAssignment_6_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30824:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30825:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30825:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30826:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__AlternativeNamesAssignment_6_3_161237);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getAlternativeNamesEStringParserRuleCall_6_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__AlternativeNamesAssignment_6_3_1"
+
+
+    // $ANTLR start "rule__Direction__DistanceAssignment_7_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30835:1: rule__Direction__DistanceAssignment_7_1 : ( ruleELong ) ;
+    public final void rule__Direction__DistanceAssignment_7_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30839:1: ( ( ruleELong ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30840:1: ( ruleELong )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30840:1: ( ruleELong )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30841:1: ruleELong
+            {
+             before(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleELong_in_rule__Direction__DistanceAssignment_7_161268);
+            ruleELong();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getDistanceELongParserRuleCall_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__DistanceAssignment_7_1"
+
+
+    // $ANTLR start "rule__Direction__OnNodeAssignment_9"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30850:1: rule__Direction__OnNodeAssignment_9 : ( ( ruleEString ) ) ;
+    public final void rule__Direction__OnNodeAssignment_9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30854:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30855:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30855:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30856:1: ( ruleEString )
+            {
+             before(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30857:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30858:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__OnNodeAssignment_961303);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getOnNodeNodeEStringParserRuleCall_9_0_1()); 
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getOnNodeNodeCrossReference_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__OnNodeAssignment_9"
+
+
+    // $ANTLR start "rule__Direction__FlowAssignment_10_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30869:1: rule__Direction__FlowAssignment_10_1 : ( ( ruleEString ) ) ;
+    public final void rule__Direction__FlowAssignment_10_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30873:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30874:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30874:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30875:1: ( ruleEString )
+            {
+             before(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30876:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30877:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__FlowAssignment_10_161342);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getFlowFlowEStringParserRuleCall_10_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getFlowFlowCrossReference_10_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__FlowAssignment_10_1"
+
+
+    // $ANTLR start "rule__Direction__ViaAssignment_12"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30888:1: rule__Direction__ViaAssignment_12 : ( ( ruleEString ) ) ;
+    public final void rule__Direction__ViaAssignment_12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30892:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30893:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30893:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30894:1: ( ruleEString )
+            {
+             before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30895:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30896:1: ruleEString
+            {
+             before(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Direction__ViaAssignment_1261381);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceEStringParserRuleCall_12_0_1()); 
+
+            }
+
+             after(grammarAccess.getDirectionAccess().getViaNetworkInterfaceCrossReference_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Direction__ViaAssignment_12"
+
+
+    // $ANTLR start "rule__Hop__InterfacerefAssignment_3"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30907:1: rule__Hop__InterfacerefAssignment_3 : ( ( ruleEString ) ) ;
+    public final void rule__Hop__InterfacerefAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30911:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30912:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30912:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30913:1: ( ruleEString )
+            {
+             before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30914:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30915:1: ruleEString
+            {
+             before(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__Hop__InterfacerefAssignment_361420);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceEStringParserRuleCall_3_0_1()); 
+
+            }
+
+             after(grammarAccess.getHopAccess().getInterfacerefNetworkInterfaceCrossReference_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__InterfacerefAssignment_3"
+
+
+    // $ANTLR start "rule__Hop__NextHopAssignment_4_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30926:1: rule__Hop__NextHopAssignment_4_1 : ( ruleHop ) ;
+    public final void rule__Hop__NextHopAssignment_4_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30930:1: ( ( ruleHop ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30931:1: ( ruleHop )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30931:1: ( ruleHop )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30932:1: ruleHop
+            {
+             before(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleHop_in_rule__Hop__NextHopAssignment_4_161455);
+            ruleHop();
+
+            state._fsp--;
+
+             after(grammarAccess.getHopAccess().getNextHopHopParserRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Hop__NextHopAssignment_4_1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30941:1: rule__PhysicalNetworkInterface__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__PhysicalNetworkInterface__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30945:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30946:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30946:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30947:1: RULE_ID
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__PhysicalNetworkInterface__IdAssignment_161486); 
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__IdAssignment_1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30956:1: rule__PhysicalNetworkInterface__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__PhysicalNetworkInterface__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30960:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30961:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30961:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30962:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__NameAssignment_461517);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__NameAssignment_4"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30971:1: rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30975:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30976:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30976:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30977:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_261548);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30986:1: rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30990:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30991:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30991:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:30992:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_161579);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31001:1: rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7 : ( ( ruleEString ) ) ;
+    public final void rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31005:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31006:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31006:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31007:1: ( ruleEString )
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31008:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31009:1: ruleEString
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_761614);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); 
+
+            }
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__AddressesAssignment_8_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31020:1: rule__PhysicalNetworkInterface__AddressesAssignment_8_2 : ( ruleEntityAddress ) ;
+    public final void rule__PhysicalNetworkInterface__AddressesAssignment_8_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31024:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31025:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31025:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31026:1: ruleEntityAddress
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__PhysicalNetworkInterface__AddressesAssignment_8_261649);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__AddressesAssignment_8_2"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31035:1: rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1 : ( ruleEntityAddress ) ;
+    public final void rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31039:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31040:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31040:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31041:1: ruleEntityAddress
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__PhysicalNetworkInterface__AddressesAssignment_8_3_161680);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1"
+
+
+    // $ANTLR start "rule__PhysicalNetworkInterface__PerformanceAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31050:1: rule__PhysicalNetworkInterface__PerformanceAssignment_10 : ( rulePhysicalNetworkInterfacePerfSpec ) ;
+    public final void rule__PhysicalNetworkInterface__PerformanceAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31054:1: ( ( rulePhysicalNetworkInterfacePerfSpec ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31055:1: ( rulePhysicalNetworkInterfacePerfSpec )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31055:1: ( rulePhysicalNetworkInterfacePerfSpec )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31056:1: rulePhysicalNetworkInterfacePerfSpec
+            {
+             before(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_rule__PhysicalNetworkInterface__PerformanceAssignment_1061711);
+            rulePhysicalNetworkInterfacePerfSpec();
+
+            state._fsp--;
+
+             after(grammarAccess.getPhysicalNetworkInterfaceAccess().getPerformancePhysicalNetworkInterfacePerfSpecParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__PhysicalNetworkInterface__PerformanceAssignment_10"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__IdAssignment_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31065:1: rule__VirtualNetworkInterface__IdAssignment_1 : ( RULE_ID ) ;
+    public final void rule__VirtualNetworkInterface__IdAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31069:1: ( ( RULE_ID ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31070:1: ( RULE_ID )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31070:1: ( RULE_ID )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31071:1: RULE_ID
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FollowSets002.FOLLOW_RULE_ID_in_rule__VirtualNetworkInterface__IdAssignment_161742); 
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getIdIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__IdAssignment_1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__NameAssignment_4"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31080:1: rule__VirtualNetworkInterface__NameAssignment_4 : ( ruleEString ) ;
+    public final void rule__VirtualNetworkInterface__NameAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31084:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31085:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31085:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31086:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__NameAssignment_461773);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getNameEStringParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__NameAssignment_4"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31095:1: rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2 : ( ruleEString ) ;
+    public final void rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31099:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31100:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31100:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31101:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_261804);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31110:1: rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1 : ( ruleEString ) ;
+    public final void rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31114:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31115:1: ( ruleEString )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31115:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31116:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_161835);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAlternativeNamesEStringParserRuleCall_5_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31125:1: rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7 : ( ( ruleEString ) ) ;
+    public final void rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31129:1: ( ( ( ruleEString ) ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31130:1: ( ( ruleEString ) )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31130:1: ( ( ruleEString ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31131:1: ( ruleEString )
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); 
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31132:1: ( ruleEString )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31133:1: ruleEString
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__UsedProtocolStackAssignment_761870);
+            ruleEString();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackEStringParserRuleCall_7_0_1()); 
+
+            }
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getUsedProtocolStackProtocolStackCrossReference_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__AddressesAssignment_8_2"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31144:1: rule__VirtualNetworkInterface__AddressesAssignment_8_2 : ( ruleEntityAddress ) ;
+    public final void rule__VirtualNetworkInterface__AddressesAssignment_8_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31148:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31149:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31149:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31150:1: ruleEntityAddress
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__VirtualNetworkInterface__AddressesAssignment_8_261905);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__AddressesAssignment_8_2"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__AddressesAssignment_8_3_1"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31159:1: rule__VirtualNetworkInterface__AddressesAssignment_8_3_1 : ( ruleEntityAddress ) ;
+    public final void rule__VirtualNetworkInterface__AddressesAssignment_8_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31163:1: ( ( ruleEntityAddress ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31164:1: ( ruleEntityAddress )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31164:1: ( ruleEntityAddress )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31165:1: ruleEntityAddress
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+            pushFollow(FollowSets002.FOLLOW_ruleEntityAddress_in_rule__VirtualNetworkInterface__AddressesAssignment_8_3_161936);
+            ruleEntityAddress();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getAddressesEntityAddressParserRuleCall_8_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__AddressesAssignment_8_3_1"
+
+
+    // $ANTLR start "rule__VirtualNetworkInterface__PerformanceAssignment_10"
+    // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31174:1: rule__VirtualNetworkInterface__PerformanceAssignment_10 : ( rulePerformanceSpecification ) ;
+    public final void rule__VirtualNetworkInterface__PerformanceAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31178:1: ( ( rulePerformanceSpecification ) )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31179:1: ( rulePerformanceSpecification )
+            {
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31179:1: ( rulePerformanceSpecification )
+            // ../tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/contentassist/antlr/internal/InternalDNIText.g:31180:1: rulePerformanceSpecification
+            {
+             before(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); 
+            pushFollow(FollowSets002.FOLLOW_rulePerformanceSpecification_in_rule__VirtualNetworkInterface__PerformanceAssignment_1061967);
+            rulePerformanceSpecification();
+
+            state._fsp--;
+
+             after(grammarAccess.getVirtualNetworkInterfaceAccess().getPerformancePerformanceSpecificationParserRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VirtualNetworkInterface__PerformanceAssignment_10"
+
+    // Delegated rules
+
+
+ 
+
+    
+    private static class FollowSets000 {
+        public static final BitSet FOLLOW_ruleNetworkInfrastructure_in_entryRuleNetworkInfrastructure61 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkInfrastructure68 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__0_in_ruleNetworkInfrastructure94 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlow_in_entryRuleFlow121 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleFlow128 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Flow__Alternatives_in_ruleFlow154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNode_in_entryRuleNode181 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNode188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Node__Alternatives_in_ruleNode214 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLink_in_entryRuleLink241 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLink248 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Link__Alternatives_in_ruleLink274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_entryRuleDependency301 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDependency308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Dependency__Alternatives_in_ruleDependency334 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_entryRuleDNIUnit361 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDNIUnit368 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpeedUnit_in_ruleDNIUnit394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFunction_in_entryRuleFunction420 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleFunction427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Function__Alternatives_in_ruleFunction453 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWorkload_in_entryRuleWorkload480 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWorkload487 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleGenericWorkload_in_ruleWorkload513 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_entryRuleAbstractAction539 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleAbstractAction546 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__AbstractAction__Alternatives_in_ruleAbstractAction572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_entryRulePerformanceSpecification599 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePerformanceSpecification606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PerformanceSpecification__Alternatives_in_rulePerformanceSpecification632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkInterfacePerfSpec_in_entryRuleNetworkInterfacePerfSpec659 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkInterfacePerfSpec666 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInterfacePerfSpec__Alternatives_in_ruleNetworkInterfacePerfSpec692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterfacePerfSpec_in_entryRuleVirtualNetworkInterfacePerfSpec719 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVirtualNetworkInterfacePerfSpec726 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__0_in_ruleVirtualNetworkInterfacePerfSpec752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_entryRulePhysicalNetworkInterfacePerfSpec779 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePhysicalNetworkInterfacePerfSpec786 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__0_in_rulePhysicalNetworkInterfacePerfSpec812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLinkPerfSpec_in_entryRuleLinkPerfSpec839 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLinkPerfSpec846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LinkPerfSpec__Alternatives_in_ruleLinkPerfSpec872 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualLinkPerfSpec_in_entryRuleVirtualLinkPerfSpec899 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVirtualLinkPerfSpec906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__0_in_ruleVirtualLinkPerfSpec932 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalLinkPerfSpec_in_entryRulePhysicalLinkPerfSpec959 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePhysicalLinkPerfSpec966 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__0_in_rulePhysicalLinkPerfSpec992 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleIntermediateNodePerfSpec_in_entryRuleIntermediateNodePerfSpec1019 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleIntermediateNodePerfSpec1026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__0_in_ruleIntermediateNodePerfSpec1052 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleControlPlanePerfSpec_in_entryRuleControlPlanePerfSpec1079 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleControlPlanePerfSpec1086 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__0_in_ruleControlPlanePerfSpec1112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataPlanePerfSpec_in_entryRuleDataPlanePerfSpec1139 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDataPlanePerfSpec1146 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__0_in_ruleDataPlanePerfSpec1172 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEndNodePerfSpec_in_entryRuleEndNodePerfSpec1199 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEndNodePerfSpec1206 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__0_in_ruleEndNodePerfSpec1232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkInterface_in_entryRuleNetworkInterface1259 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkInterface1266 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInterface__Alternatives_in_ruleNetworkInterface1292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkTraffic_in_entryRuleNetworkTraffic1319 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkTraffic1326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__0_in_ruleNetworkTraffic1352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkStructure_in_entryRuleNetworkStructure1379 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkStructure1386 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__0_in_ruleNetworkStructure1412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkConfiguration_in_entryRuleNetworkConfiguration1439 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkConfiguration1446 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__0_in_ruleNetworkConfiguration1472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleExperimentParam_in_entryRuleExperimentParam1499 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleExperimentParam1506 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__0_in_ruleExperimentParam1532 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_entryRuleEString1559 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEString1566 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EString__Alternatives_in_ruleEString1592 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSoftwareComponent_in_entryRuleSoftwareComponent1619 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSoftwareComponent1626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__0_in_ruleSoftwareComponent1652 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_entryRuleEntityAddress1679 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEntityAddress1686 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__0_in_ruleEntityAddress1712 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleONOFFFlow_in_entryRuleONOFFFlow1739 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleONOFFFlow1746 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__0_in_ruleONOFFFlow1772 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleGenericFlow_in_entryRuleGenericFlow1799 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleGenericFlow1806 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__0_in_ruleGenericFlow1832 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkProtocol_in_entryRuleNetworkProtocol1859 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleNetworkProtocol1866 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__0_in_ruleNetworkProtocol1892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_entryRuleEInt1919 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEInt1926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__0_in_ruleEInt1952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEBoolean_in_entryRuleEBoolean1979 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEBoolean1986 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EBoolean__Alternatives_in_ruleEBoolean2012 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleConstantDoubleVariable_in_entryRuleConstantDoubleVariable2039 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleConstantDoubleVariable2046 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__0_in_ruleConstantDoubleVariable2072 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleConstantLongVariable_in_entryRuleConstantLongVariable2099 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleConstantLongVariable2106 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__0_in_ruleConstantLongVariable2132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRandomVariable_in_entryRuleRandomVariable2159 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleRandomVariable2166 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__0_in_ruleRandomVariable2192 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleContinuousFunction_in_entryRuleContinuousFunction2219 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleContinuousFunction2226 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__0_in_ruleContinuousFunction2252 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDiscreteFunction_in_entryRuleDiscreteFunction2279 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDiscreteFunction2286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__0_in_ruleDiscreteFunction2312 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEFloat_in_entryRuleEFloat2339 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEFloat2346 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__0_in_ruleEFloat2372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpeedUnit_in_entryRuleSpeedUnit2399 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSpeedUnit2406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__0_in_ruleSpeedUnit2432 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_entryRuleEDouble2459 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEDouble2466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0_in_ruleEDouble2492 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleELong_in_entryRuleELong2519 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleELong2526 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ELong__Group__0_in_ruleELong2552 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataSeries_in_entryRuleDataSeries2579 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDataSeries2586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__0_in_ruleDataSeries2612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTrafficSource_in_entryRuleTrafficSource2639 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleTrafficSource2646 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__0_in_ruleTrafficSource2672 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleGenericWorkload_in_entryRuleGenericWorkload2699 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleGenericWorkload2706 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__0_in_ruleGenericWorkload2732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_entryRuleBranchAction2759 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleBranchAction2766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__0_in_ruleBranchAction2792 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_entryRuleLoopAction2819 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleLoopAction2826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__0_in_ruleLoopAction2852 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSequenceAction_in_entryRuleSequenceAction2879 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleSequenceAction2886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__0_in_ruleSequenceAction2912 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_entryRuleStartAction2939 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStartAction2946 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__0_in_ruleStartAction2972 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_entryRuleStopAction2999 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleStopAction3006 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__0_in_ruleStopAction3032 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTransmitAction_in_entryRuleTransmitAction3059 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleTransmitAction3066 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__0_in_ruleTransmitAction3092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWaitAction_in_entryRuleWaitAction3119 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleWaitAction3126 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__0_in_ruleWaitAction3152 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNode_in_entryRuleVirtualNode3181 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVirtualNode3188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__0_in_ruleVirtualNode3214 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNode_in_entryRulePhysicalNode3241 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePhysicalNode3248 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__0_in_rulePhysicalNode3274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalLink_in_entryRulePhysicalLink3301 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePhysicalLink3308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__0_in_rulePhysicalLink3334 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualLink_in_entryRuleVirtualLink3361 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVirtualLink3368 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__0_in_ruleVirtualLink3394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolsRepository_in_entryRuleProtocolsRepository3421 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleProtocolsRepository3428 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__0_in_ruleProtocolsRepository3454 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRoutesRepository_in_entryRuleRoutesRepository3481 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleRoutesRepository3488 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__0_in_ruleRoutesRepository3514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolStack_in_entryRuleProtocolStack3541 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleProtocolStack3548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__0_in_ruleProtocolStack3574 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolLayer_in_entryRuleProtocolLayer3601 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleProtocolLayer3608 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__0_in_ruleProtocolLayer3634 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRoute_in_entryRuleRoute3661 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleRoute3668 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__0_in_ruleRoute3694 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlowRoute_in_entryRuleFlowRoute3721 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleFlowRoute3728 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__0_in_ruleFlowRoute3754 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDirection_in_entryRuleDirection3781 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleDirection3788 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__0_in_ruleDirection3814 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleHop_in_entryRuleHop3841 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleHop3848 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__0_in_ruleHop3874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEIntegerObject_in_entryRuleEIntegerObject3901 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleEIntegerObject3908 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EIntegerObject__Group__0_in_ruleEIntegerObject3934 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNetworkInterface_in_entryRulePhysicalNetworkInterface3961 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRulePhysicalNetworkInterface3968 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__0_in_rulePhysicalNetworkInterface3994 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterface_in_entryRuleVirtualNetworkInterface4021 = new BitSet(new long[]{0x0000000000000000L});
+        public static final BitSet FOLLOW_EOF_in_entryRuleVirtualNetworkInterface4028 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__0_in_ruleVirtualNetworkInterface4054 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__UnitPrefix__Alternatives_in_ruleUnitPrefix4091 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Speed__Alternatives_in_ruleSpeed4127 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleONOFFFlow_in_rule__Flow__Alternatives4162 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleGenericFlow_in_rule__Flow__Alternatives4179 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNode_in_rule__Node__Alternatives4211 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNode_in_rule__Node__Alternatives4228 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalLink_in_rule__Link__Alternatives4260 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualLink_in_rule__Link__Alternatives4277 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleConstantDoubleVariable_in_rule__Dependency__Alternatives4309 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleConstantLongVariable_in_rule__Dependency__Alternatives4326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRandomVariable_in_rule__Dependency__Alternatives4343 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleContinuousFunction_in_rule__Dependency__Alternatives4360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDiscreteFunction_in_rule__Dependency__Alternatives4377 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleContinuousFunction_in_rule__Function__Alternatives4409 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDiscreteFunction_in_rule__Function__Alternatives4426 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleBranchAction_in_rule__AbstractAction__Alternatives4458 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLoopAction_in_rule__AbstractAction__Alternatives4475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSequenceAction_in_rule__AbstractAction__Alternatives4492 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStartAction_in_rule__AbstractAction__Alternatives4509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleStopAction_in_rule__AbstractAction__Alternatives4526 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTransmitAction_in_rule__AbstractAction__Alternatives4543 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWaitAction_in_rule__AbstractAction__Alternatives4560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleIntermediateNodePerfSpec_in_rule__PerformanceSpecification__Alternatives4592 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEndNodePerfSpec_in_rule__PerformanceSpecification__Alternatives4609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLinkPerfSpec_in_rule__PerformanceSpecification__Alternatives4626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkInterfacePerfSpec_in_rule__PerformanceSpecification__Alternatives4643 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_rule__NetworkInterfacePerfSpec__Alternatives4675 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterfacePerfSpec_in_rule__NetworkInterfacePerfSpec__Alternatives4692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalLinkPerfSpec_in_rule__LinkPerfSpec__Alternatives4724 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualLinkPerfSpec_in_rule__LinkPerfSpec__Alternatives4741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNetworkInterface_in_rule__NetworkInterface__Alternatives4773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterface_in_rule__NetworkInterface__Alternatives4790 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_STRING_in_rule__EString__Alternatives4822 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__EString__Alternatives4839 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_11_in_rule__EBoolean__Alternatives4872 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_12_in_rule__EBoolean__Alternatives4892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_13_in_rule__EFloat__Alternatives_4_04927 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__EFloat__Alternatives_4_04947 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_13_in_rule__EDouble__Alternatives_4_04982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_14_in_rule__EDouble__Alternatives_4_05002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_15_in_rule__UnitPrefix__Alternatives5037 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_16_in_rule__UnitPrefix__Alternatives5058 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_17_in_rule__UnitPrefix__Alternatives5079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_18_in_rule__UnitPrefix__Alternatives5100 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_19_in_rule__Speed__Alternatives5136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_20_in_rule__Speed__Alternatives5157 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_21_in_rule__Speed__Alternatives5178 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__0__Impl_in_rule__NetworkInfrastructure__Group__05211 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__1_in_rule__NetworkInfrastructure__Group__05214 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_22_in_rule__NetworkInfrastructure__Group__0__Impl5242 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__1__Impl_in_rule__NetworkInfrastructure__Group__15273 = new BitSet(new long[]{0x0000000001000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__2_in_rule__NetworkInfrastructure__Group__15276 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkInfrastructure__Group__1__Impl5304 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__2__Impl_in_rule__NetworkInfrastructure__Group__25335 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__3_in_rule__NetworkInfrastructure__Group__25338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_24_in_rule__NetworkInfrastructure__Group__2__Impl5366 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__3__Impl_in_rule__NetworkInfrastructure__Group__35397 = new BitSet(new long[]{0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__4_in_rule__NetworkInfrastructure__Group__35400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__DataCenterNameAssignment_3_in_rule__NetworkInfrastructure__Group__3__Impl5427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__4__Impl_in_rule__NetworkInfrastructure__Group__45457 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__5_in_rule__NetworkInfrastructure__Group__45460 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_25_in_rule__NetworkInfrastructure__Group__4__Impl5488 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__5__Impl_in_rule__NetworkInfrastructure__Group__55519 = new BitSet(new long[]{0x0000000004000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__6_in_rule__NetworkInfrastructure__Group__55522 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__DataCenterAltNameAssignment_5_in_rule__NetworkInfrastructure__Group__5__Impl5549 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__6__Impl_in_rule__NetworkInfrastructure__Group__65579 = new BitSet(new long[]{0x0020000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__7_in_rule__NetworkInfrastructure__Group__65582 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_26_in_rule__NetworkInfrastructure__Group__6__Impl5610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__7__Impl_in_rule__NetworkInfrastructure__Group__75641 = new BitSet(new long[]{0x0000000008000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__8_in_rule__NetworkInfrastructure__Group__75644 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__TrafficAssignment_7_in_rule__NetworkInfrastructure__Group__7__Impl5671 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__8__Impl_in_rule__NetworkInfrastructure__Group__85701 = new BitSet(new long[]{0x0100000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__9_in_rule__NetworkInfrastructure__Group__85704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_27_in_rule__NetworkInfrastructure__Group__8__Impl5732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__9__Impl_in_rule__NetworkInfrastructure__Group__95763 = new BitSet(new long[]{0x0000000010000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__10_in_rule__NetworkInfrastructure__Group__95766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__StructureAssignment_9_in_rule__NetworkInfrastructure__Group__9__Impl5793 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__10__Impl_in_rule__NetworkInfrastructure__Group__105823 = new BitSet(new long[]{0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__11_in_rule__NetworkInfrastructure__Group__105826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_28_in_rule__NetworkInfrastructure__Group__10__Impl5854 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__11__Impl_in_rule__NetworkInfrastructure__Group__115885 = new BitSet(new long[]{0x0000000060000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__12_in_rule__NetworkInfrastructure__Group__115888 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__ConfigurationAssignment_11_in_rule__NetworkInfrastructure__Group__11__Impl5915 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__12__Impl_in_rule__NetworkInfrastructure__Group__125945 = new BitSet(new long[]{0x0000000060000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__13_in_rule__NetworkInfrastructure__Group__125948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__0_in_rule__NetworkInfrastructure__Group__12__Impl5975 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group__13__Impl_in_rule__NetworkInfrastructure__Group__136006 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkInfrastructure__Group__13__Impl6034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__0__Impl_in_rule__NetworkInfrastructure__Group_12__06093 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__1_in_rule__NetworkInfrastructure__Group_12__06096 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_30_in_rule__NetworkInfrastructure__Group_12__0__Impl6124 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__1__Impl_in_rule__NetworkInfrastructure__Group_12__16155 = new BitSet(new long[]{0x4000000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__2_in_rule__NetworkInfrastructure__Group_12__16158 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkInfrastructure__Group_12__1__Impl6186 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__2__Impl_in_rule__NetworkInfrastructure__Group_12__26217 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__3_in_rule__NetworkInfrastructure__Group_12__26220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__ParamsAssignment_12_2_in_rule__NetworkInfrastructure__Group_12__2__Impl6247 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__3__Impl_in_rule__NetworkInfrastructure__Group_12__36277 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__4_in_rule__NetworkInfrastructure__Group_12__36280 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12_3__0_in_rule__NetworkInfrastructure__Group_12__3__Impl6307 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12__4__Impl_in_rule__NetworkInfrastructure__Group_12__46338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkInfrastructure__Group_12__4__Impl6366 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12_3__0__Impl_in_rule__NetworkInfrastructure__Group_12_3__06407 = new BitSet(new long[]{0x4000000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12_3__1_in_rule__NetworkInfrastructure__Group_12_3__06410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkInfrastructure__Group_12_3__0__Impl6438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__Group_12_3__1__Impl_in_rule__NetworkInfrastructure__Group_12_3__16469 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkInfrastructure__ParamsAssignment_12_3_1_in_rule__NetworkInfrastructure__Group_12_3__1__Impl6496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__0__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__06530 = new BitSet(new long[]{0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__1_in_rule__VirtualNetworkInterfacePerfSpec__Group__06533 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__16591 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__2_in_rule__VirtualNetworkInterfacePerfSpec__Group__16594 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_32_in_rule__VirtualNetworkInterfacePerfSpec__Group__1__Impl6622 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__26653 = new BitSet(new long[]{0x0000000200000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__3_in_rule__VirtualNetworkInterfacePerfSpec__Group__26656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNetworkInterfacePerfSpec__Group__2__Impl6684 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__36715 = new BitSet(new long[]{0x0000000000001800L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__4_in_rule__VirtualNetworkInterfacePerfSpec__Group__36718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_33_in_rule__VirtualNetworkInterfacePerfSpec__Group__3__Impl6746 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__46777 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__5_in_rule__VirtualNetworkInterfacePerfSpec__Group__46780 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_4_in_rule__VirtualNetworkInterfacePerfSpec__Group__4__Impl6807 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__56837 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__6_in_rule__VirtualNetworkInterfacePerfSpec__Group__56840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__VirtualNetworkInterfacePerfSpec__Group__5__Impl6868 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__66899 = new BitSet(new long[]{0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__7_in_rule__VirtualNetworkInterfacePerfSpec__Group__66902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6_in_rule__VirtualNetworkInterfacePerfSpec__Group__6__Impl6929 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__76959 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__8_in_rule__VirtualNetworkInterfacePerfSpec__Group__76962 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_35_in_rule__VirtualNetworkInterfacePerfSpec__Group__7__Impl6990 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__87021 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__9_in_rule__VirtualNetworkInterfacePerfSpec__Group__87024 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_8_in_rule__VirtualNetworkInterfacePerfSpec__Group__8__Impl7051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__97081 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__10_in_rule__VirtualNetworkInterfacePerfSpec__Group__97084 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__VirtualNetworkInterfacePerfSpec__Group__9__Impl7112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__107143 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__11_in_rule__VirtualNetworkInterfacePerfSpec__Group__107146 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10_in_rule__VirtualNetworkInterfacePerfSpec__Group__10__Impl7173 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl_in_rule__VirtualNetworkInterfacePerfSpec__Group__117203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNetworkInterfacePerfSpec__Group__11__Impl7231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__0__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__07286 = new BitSet(new long[]{0x0000002000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__1_in_rule__PhysicalNetworkInterfacePerfSpec__Group__07289 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__17347 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__2_in_rule__PhysicalNetworkInterfacePerfSpec__Group__17350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_37_in_rule__PhysicalNetworkInterfacePerfSpec__Group__1__Impl7378 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__27409 = new BitSet(new long[]{0x0000000200000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__3_in_rule__PhysicalNetworkInterfacePerfSpec__Group__27412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNetworkInterfacePerfSpec__Group__2__Impl7440 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__37471 = new BitSet(new long[]{0x0000000000001800L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__4_in_rule__PhysicalNetworkInterfacePerfSpec__Group__37474 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_33_in_rule__PhysicalNetworkInterfacePerfSpec__Group__3__Impl7502 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__47533 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__5_in_rule__PhysicalNetworkInterfacePerfSpec__Group__47536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_4_in_rule__PhysicalNetworkInterfacePerfSpec__Group__4__Impl7563 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__57593 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__6_in_rule__PhysicalNetworkInterfacePerfSpec__Group__57596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__PhysicalNetworkInterfacePerfSpec__Group__5__Impl7624 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__67655 = new BitSet(new long[]{0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__7_in_rule__PhysicalNetworkInterfacePerfSpec__Group__67658 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_6_in_rule__PhysicalNetworkInterfacePerfSpec__Group__6__Impl7685 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__77715 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__8_in_rule__PhysicalNetworkInterfacePerfSpec__Group__77718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_35_in_rule__PhysicalNetworkInterfacePerfSpec__Group__7__Impl7746 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__87777 = new BitSet(new long[]{0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__9_in_rule__PhysicalNetworkInterfacePerfSpec__Group__87780 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_8_in_rule__PhysicalNetworkInterfacePerfSpec__Group__8__Impl7807 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__97837 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__10_in_rule__PhysicalNetworkInterfacePerfSpec__Group__97840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_36_in_rule__PhysicalNetworkInterfacePerfSpec__Group__9__Impl7868 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__107899 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__11_in_rule__PhysicalNetworkInterfacePerfSpec__Group__107902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_10_in_rule__PhysicalNetworkInterfacePerfSpec__Group__10__Impl7929 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl_in_rule__PhysicalNetworkInterfacePerfSpec__Group__117959 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNetworkInterfacePerfSpec__Group__11__Impl7987 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__0__Impl_in_rule__VirtualLinkPerfSpec__Group__08042 = new BitSet(new long[]{0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__1_in_rule__VirtualLinkPerfSpec__Group__08045 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__1__Impl_in_rule__VirtualLinkPerfSpec__Group__18103 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__2_in_rule__VirtualLinkPerfSpec__Group__18106 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_38_in_rule__VirtualLinkPerfSpec__Group__1__Impl8134 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__2__Impl_in_rule__VirtualLinkPerfSpec__Group__28165 = new BitSet(new long[]{0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__3_in_rule__VirtualLinkPerfSpec__Group__28168 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualLinkPerfSpec__Group__2__Impl8196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__3__Impl_in_rule__VirtualLinkPerfSpec__Group__38227 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__4_in_rule__VirtualLinkPerfSpec__Group__38230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__VirtualLinkPerfSpec__Group__3__Impl8258 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__4__Impl_in_rule__VirtualLinkPerfSpec__Group__48289 = new BitSet(new long[]{0x0000010020000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__5_in_rule__VirtualLinkPerfSpec__Group__48292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__PropagationDelayAssignment_4_in_rule__VirtualLinkPerfSpec__Group__4__Impl8319 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__5__Impl_in_rule__VirtualLinkPerfSpec__Group__58349 = new BitSet(new long[]{0x0000010020000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__6_in_rule__VirtualLinkPerfSpec__Group__58352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group_5__0_in_rule__VirtualLinkPerfSpec__Group__5__Impl8379 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group__6__Impl_in_rule__VirtualLinkPerfSpec__Group__68410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualLinkPerfSpec__Group__6__Impl8438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group_5__0__Impl_in_rule__VirtualLinkPerfSpec__Group_5__08483 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group_5__1_in_rule__VirtualLinkPerfSpec__Group_5__08486 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__VirtualLinkPerfSpec__Group_5__0__Impl8514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__Group_5__1__Impl_in_rule__VirtualLinkPerfSpec__Group_5__18545 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1_in_rule__VirtualLinkPerfSpec__Group_5__1__Impl8572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__0__Impl_in_rule__PhysicalLinkPerfSpec__Group__08606 = new BitSet(new long[]{0x0000020000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__1_in_rule__PhysicalLinkPerfSpec__Group__08609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__1__Impl_in_rule__PhysicalLinkPerfSpec__Group__18667 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__2_in_rule__PhysicalLinkPerfSpec__Group__18670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_41_in_rule__PhysicalLinkPerfSpec__Group__1__Impl8698 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__2__Impl_in_rule__PhysicalLinkPerfSpec__Group__28729 = new BitSet(new long[]{0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__3_in_rule__PhysicalLinkPerfSpec__Group__28732 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalLinkPerfSpec__Group__2__Impl8760 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__3__Impl_in_rule__PhysicalLinkPerfSpec__Group__38791 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__4_in_rule__PhysicalLinkPerfSpec__Group__38794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_39_in_rule__PhysicalLinkPerfSpec__Group__3__Impl8822 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__4__Impl_in_rule__PhysicalLinkPerfSpec__Group__48853 = new BitSet(new long[]{0x0000010020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__5_in_rule__PhysicalLinkPerfSpec__Group__48856 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_4_in_rule__PhysicalLinkPerfSpec__Group__4__Impl8883 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__5__Impl_in_rule__PhysicalLinkPerfSpec__Group__58913 = new BitSet(new long[]{0x0000010020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__6_in_rule__PhysicalLinkPerfSpec__Group__58916 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__0_in_rule__PhysicalLinkPerfSpec__Group__5__Impl8943 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group__6__Impl_in_rule__PhysicalLinkPerfSpec__Group__68974 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalLinkPerfSpec__Group__6__Impl9002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__0__Impl_in_rule__PhysicalLinkPerfSpec__Group_5__09047 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__1_in_rule__PhysicalLinkPerfSpec__Group_5__09050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_40_in_rule__PhysicalLinkPerfSpec__Group_5__0__Impl9078 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__Group_5__1__Impl_in_rule__PhysicalLinkPerfSpec__Group_5__19109 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_1_in_rule__PhysicalLinkPerfSpec__Group_5__1__Impl9136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__0__Impl_in_rule__IntermediateNodePerfSpec__Group__09170 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__1_in_rule__IntermediateNodePerfSpec__Group__09173 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_42_in_rule__IntermediateNodePerfSpec__Group__0__Impl9201 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__1__Impl_in_rule__IntermediateNodePerfSpec__Group__19232 = new BitSet(new long[]{0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__2_in_rule__IntermediateNodePerfSpec__Group__19235 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__IntermediateNodePerfSpec__Group__1__Impl9263 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__2__Impl_in_rule__IntermediateNodePerfSpec__Group__29294 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__3_in_rule__IntermediateNodePerfSpec__Group__29297 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__IntermediateNodePerfSpec__Group__2__Impl9325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__3__Impl_in_rule__IntermediateNodePerfSpec__Group__39356 = new BitSet(new long[]{0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__4_in_rule__IntermediateNodePerfSpec__Group__39359 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__DataplaneAssignment_3_in_rule__IntermediateNodePerfSpec__Group__3__Impl9386 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__4__Impl_in_rule__IntermediateNodePerfSpec__Group__49416 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__5_in_rule__IntermediateNodePerfSpec__Group__49419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__IntermediateNodePerfSpec__Group__4__Impl9447 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__5__Impl_in_rule__IntermediateNodePerfSpec__Group__59478 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__6_in_rule__IntermediateNodePerfSpec__Group__59481 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__ControlplaneAssignment_5_in_rule__IntermediateNodePerfSpec__Group__5__Impl9508 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__IntermediateNodePerfSpec__Group__6__Impl_in_rule__IntermediateNodePerfSpec__Group__69538 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__IntermediateNodePerfSpec__Group__6__Impl9566 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__0__Impl_in_rule__ControlPlanePerfSpec__Group__09611 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__1_in_rule__ControlPlanePerfSpec__Group__09614 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_45_in_rule__ControlPlanePerfSpec__Group__0__Impl9642 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__1__Impl_in_rule__ControlPlanePerfSpec__Group__19673 = new BitSet(new long[]{0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__2_in_rule__ControlPlanePerfSpec__Group__19676 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ControlPlanePerfSpec__Group__1__Impl9704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__2__Impl_in_rule__ControlPlanePerfSpec__Group__29735 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__3_in_rule__ControlPlanePerfSpec__Group__29738 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_46_in_rule__ControlPlanePerfSpec__Group__2__Impl9766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__3__Impl_in_rule__ControlPlanePerfSpec__Group__39797 = new BitSet(new long[]{0x0000800000000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__4_in_rule__ControlPlanePerfSpec__Group__39800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_3_in_rule__ControlPlanePerfSpec__Group__3__Impl9827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__4__Impl_in_rule__ControlPlanePerfSpec__Group__49857 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__5_in_rule__ControlPlanePerfSpec__Group__49860 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_47_in_rule__ControlPlanePerfSpec__Group__4__Impl9888 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__5__Impl_in_rule__ControlPlanePerfSpec__Group__59919 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__6_in_rule__ControlPlanePerfSpec__Group__59922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_5_in_rule__ControlPlanePerfSpec__Group__5__Impl9949 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__6__Impl_in_rule__ControlPlanePerfSpec__Group__69979 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__7_in_rule__ControlPlanePerfSpec__Group__69982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__ControlPlanePerfSpec__Group__6__Impl10010 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__7__Impl_in_rule__ControlPlanePerfSpec__Group__710041 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__8_in_rule__ControlPlanePerfSpec__Group__710044 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_7_in_rule__ControlPlanePerfSpec__Group__7__Impl10071 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ControlPlanePerfSpec__Group__8__Impl_in_rule__ControlPlanePerfSpec__Group__810101 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ControlPlanePerfSpec__Group__8__Impl10129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__0__Impl_in_rule__DataPlanePerfSpec__Group__010178 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__1_in_rule__DataPlanePerfSpec__Group__010181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_45_in_rule__DataPlanePerfSpec__Group__0__Impl10209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__1__Impl_in_rule__DataPlanePerfSpec__Group__110240 = new BitSet(new long[]{0x0001000000000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__2_in_rule__DataPlanePerfSpec__Group__110243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__DataPlanePerfSpec__Group__1__Impl10271 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__2__Impl_in_rule__DataPlanePerfSpec__Group__210302 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__3_in_rule__DataPlanePerfSpec__Group__210305 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_48_in_rule__DataPlanePerfSpec__Group__2__Impl10333 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__3__Impl_in_rule__DataPlanePerfSpec__Group__310364 = new BitSet(new long[]{0x0002000000000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__4_in_rule__DataPlanePerfSpec__Group__310367 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__ForwardingLatencyAssignment_3_in_rule__DataPlanePerfSpec__Group__3__Impl10394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__4__Impl_in_rule__DataPlanePerfSpec__Group__410424 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__5_in_rule__DataPlanePerfSpec__Group__410427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_49_in_rule__DataPlanePerfSpec__Group__4__Impl10455 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__5__Impl_in_rule__DataPlanePerfSpec__Group__510486 = new BitSet(new long[]{0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__6_in_rule__DataPlanePerfSpec__Group__510489 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_5_in_rule__DataPlanePerfSpec__Group__5__Impl10516 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__6__Impl_in_rule__DataPlanePerfSpec__Group__610546 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__7_in_rule__DataPlanePerfSpec__Group__610549 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_50_in_rule__DataPlanePerfSpec__Group__6__Impl10577 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__7__Impl_in_rule__DataPlanePerfSpec__Group__710608 = new BitSet(new long[]{0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__8_in_rule__DataPlanePerfSpec__Group__710611 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_7_in_rule__DataPlanePerfSpec__Group__7__Impl10638 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__8__Impl_in_rule__DataPlanePerfSpec__Group__810668 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__9_in_rule__DataPlanePerfSpec__Group__810671 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_34_in_rule__DataPlanePerfSpec__Group__8__Impl10699 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__9__Impl_in_rule__DataPlanePerfSpec__Group__910730 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__10_in_rule__DataPlanePerfSpec__Group__910733 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_9_in_rule__DataPlanePerfSpec__Group__9__Impl10760 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataPlanePerfSpec__Group__10__Impl_in_rule__DataPlanePerfSpec__Group__1010790 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__DataPlanePerfSpec__Group__10__Impl10818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__0__Impl_in_rule__EndNodePerfSpec__Group__010871 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__1_in_rule__EndNodePerfSpec__Group__010874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_51_in_rule__EndNodePerfSpec__Group__0__Impl10902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__1__Impl_in_rule__EndNodePerfSpec__Group__110933 = new BitSet(new long[]{0x0010000000000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__2_in_rule__EndNodePerfSpec__Group__110936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__EndNodePerfSpec__Group__1__Impl10964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__2__Impl_in_rule__EndNodePerfSpec__Group__210995 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__3_in_rule__EndNodePerfSpec__Group__210998 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_52_in_rule__EndNodePerfSpec__Group__2__Impl11026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__3__Impl_in_rule__EndNodePerfSpec__Group__311057 = new BitSet(new long[]{0x0000180020000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__4_in_rule__EndNodePerfSpec__Group__311060 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_3_in_rule__EndNodePerfSpec__Group__3__Impl11087 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__4__Impl_in_rule__EndNodePerfSpec__Group__411117 = new BitSet(new long[]{0x0000180020000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__5_in_rule__EndNodePerfSpec__Group__411120 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_4__0_in_rule__EndNodePerfSpec__Group__4__Impl11147 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__5__Impl_in_rule__EndNodePerfSpec__Group__511178 = new BitSet(new long[]{0x0000180020000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__6_in_rule__EndNodePerfSpec__Group__511181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_5__0_in_rule__EndNodePerfSpec__Group__5__Impl11208 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group__6__Impl_in_rule__EndNodePerfSpec__Group__611239 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__EndNodePerfSpec__Group__6__Impl11267 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_4__0__Impl_in_rule__EndNodePerfSpec__Group_4__011312 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_4__1_in_rule__EndNodePerfSpec__Group_4__011315 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_43_in_rule__EndNodePerfSpec__Group_4__0__Impl11343 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_4__1__Impl_in_rule__EndNodePerfSpec__Group_4__111374 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__DataplaneAssignment_4_1_in_rule__EndNodePerfSpec__Group_4__1__Impl11401 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_5__0__Impl_in_rule__EndNodePerfSpec__Group_5__011435 = new BitSet(new long[]{0x0000200000000000L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_5__1_in_rule__EndNodePerfSpec__Group_5__011438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_44_in_rule__EndNodePerfSpec__Group_5__0__Impl11466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__Group_5__1__Impl_in_rule__EndNodePerfSpec__Group_5__111497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EndNodePerfSpec__ControlplaneAssignment_5_1_in_rule__EndNodePerfSpec__Group_5__1__Impl11524 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__0__Impl_in_rule__NetworkTraffic__Group__011558 = new BitSet(new long[]{0x0020000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__1_in_rule__NetworkTraffic__Group__011561 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__1__Impl_in_rule__NetworkTraffic__Group__111619 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__2_in_rule__NetworkTraffic__Group__111622 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_53_in_rule__NetworkTraffic__Group__1__Impl11650 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__2__Impl_in_rule__NetworkTraffic__Group__211681 = new BitSet(new long[]{0x00C0000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__3_in_rule__NetworkTraffic__Group__211684 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkTraffic__Group__2__Impl11712 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__3__Impl_in_rule__NetworkTraffic__Group__311743 = new BitSet(new long[]{0x00C0000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__4_in_rule__NetworkTraffic__Group__311746 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__0_in_rule__NetworkTraffic__Group__3__Impl11773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__4__Impl_in_rule__NetworkTraffic__Group__411804 = new BitSet(new long[]{0x00C0000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__5_in_rule__NetworkTraffic__Group__411807 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__0_in_rule__NetworkTraffic__Group__4__Impl11834 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group__5__Impl_in_rule__NetworkTraffic__Group__511865 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkTraffic__Group__5__Impl11893 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__0__Impl_in_rule__NetworkTraffic__Group_3__011936 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__1_in_rule__NetworkTraffic__Group_3__011939 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_54_in_rule__NetworkTraffic__Group_3__0__Impl11967 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__1__Impl_in_rule__NetworkTraffic__Group_3__111998 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L,0x0000000080000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__2_in_rule__NetworkTraffic__Group_3__112001 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkTraffic__Group_3__1__Impl12029 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__2__Impl_in_rule__NetworkTraffic__Group_3__212060 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__3_in_rule__NetworkTraffic__Group_3__212063 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__FlowsAssignment_3_2_in_rule__NetworkTraffic__Group_3__2__Impl12090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__3__Impl_in_rule__NetworkTraffic__Group_3__312120 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__4_in_rule__NetworkTraffic__Group_3__312123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3_3__0_in_rule__NetworkTraffic__Group_3__3__Impl12150 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3__4__Impl_in_rule__NetworkTraffic__Group_3__412181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkTraffic__Group_3__4__Impl12209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3_3__0__Impl_in_rule__NetworkTraffic__Group_3_3__012250 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L,0x0000000080000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3_3__1_in_rule__NetworkTraffic__Group_3_3__012253 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkTraffic__Group_3_3__0__Impl12281 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_3_3__1__Impl_in_rule__NetworkTraffic__Group_3_3__112312 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__FlowsAssignment_3_3_1_in_rule__NetworkTraffic__Group_3_3__1__Impl12339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__0__Impl_in_rule__NetworkTraffic__Group_4__012373 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__1_in_rule__NetworkTraffic__Group_4__012376 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_55_in_rule__NetworkTraffic__Group_4__0__Impl12404 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__1__Impl_in_rule__NetworkTraffic__Group_4__112435 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__2_in_rule__NetworkTraffic__Group_4__112438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkTraffic__Group_4__1__Impl12466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__2__Impl_in_rule__NetworkTraffic__Group_4__212497 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__3_in_rule__NetworkTraffic__Group_4__212500 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__SoftwareAssignment_4_2_in_rule__NetworkTraffic__Group_4__2__Impl12527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__3__Impl_in_rule__NetworkTraffic__Group_4__312557 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__4_in_rule__NetworkTraffic__Group_4__312560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4_3__0_in_rule__NetworkTraffic__Group_4__3__Impl12587 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4__4__Impl_in_rule__NetworkTraffic__Group_4__412618 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkTraffic__Group_4__4__Impl12646 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4_3__0__Impl_in_rule__NetworkTraffic__Group_4_3__012687 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4_3__1_in_rule__NetworkTraffic__Group_4_3__012690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkTraffic__Group_4_3__0__Impl12718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__Group_4_3__1__Impl_in_rule__NetworkTraffic__Group_4_3__112749 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkTraffic__SoftwareAssignment_4_3_1_in_rule__NetworkTraffic__Group_4_3__1__Impl12776 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__0__Impl_in_rule__NetworkStructure__Group__012810 = new BitSet(new long[]{0x0100000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__1_in_rule__NetworkStructure__Group__012813 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__1__Impl_in_rule__NetworkStructure__Group__112871 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__2_in_rule__NetworkStructure__Group__112874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_56_in_rule__NetworkStructure__Group__1__Impl12902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__2__Impl_in_rule__NetworkStructure__Group__212933 = new BitSet(new long[]{0x0600000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__3_in_rule__NetworkStructure__Group__212936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkStructure__Group__2__Impl12964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__3__Impl_in_rule__NetworkStructure__Group__312995 = new BitSet(new long[]{0x0600000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__4_in_rule__NetworkStructure__Group__312998 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__0_in_rule__NetworkStructure__Group__3__Impl13025 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__4__Impl_in_rule__NetworkStructure__Group__413056 = new BitSet(new long[]{0x0600000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__5_in_rule__NetworkStructure__Group__413059 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__0_in_rule__NetworkStructure__Group__4__Impl13086 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group__5__Impl_in_rule__NetworkStructure__Group__513117 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkStructure__Group__5__Impl13145 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__0__Impl_in_rule__NetworkStructure__Group_3__013188 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__1_in_rule__NetworkStructure__Group_3__013191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_57_in_rule__NetworkStructure__Group_3__0__Impl13219 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__1__Impl_in_rule__NetworkStructure__Group_3__113250 = new BitSet(new long[]{0x0000000000000000L,0x4100000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__2_in_rule__NetworkStructure__Group_3__113253 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkStructure__Group_3__1__Impl13281 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__2__Impl_in_rule__NetworkStructure__Group_3__213312 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__3_in_rule__NetworkStructure__Group_3__213315 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__NodesAssignment_3_2_in_rule__NetworkStructure__Group_3__2__Impl13342 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__3__Impl_in_rule__NetworkStructure__Group_3__313372 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__4_in_rule__NetworkStructure__Group_3__313375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3_3__0_in_rule__NetworkStructure__Group_3__3__Impl13402 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3__4__Impl_in_rule__NetworkStructure__Group_3__413433 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkStructure__Group_3__4__Impl13461 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3_3__0__Impl_in_rule__NetworkStructure__Group_3_3__013502 = new BitSet(new long[]{0x0000000000000000L,0x4100000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3_3__1_in_rule__NetworkStructure__Group_3_3__013505 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkStructure__Group_3_3__0__Impl13533 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_3_3__1__Impl_in_rule__NetworkStructure__Group_3_3__113564 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__NodesAssignment_3_3_1_in_rule__NetworkStructure__Group_3_3__1__Impl13591 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__0__Impl_in_rule__NetworkStructure__Group_4__013625 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__1_in_rule__NetworkStructure__Group_4__013628 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_58_in_rule__NetworkStructure__Group_4__0__Impl13656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__1__Impl_in_rule__NetworkStructure__Group_4__113687 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000005L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__2_in_rule__NetworkStructure__Group_4__113690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkStructure__Group_4__1__Impl13718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__2__Impl_in_rule__NetworkStructure__Group_4__213749 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__3_in_rule__NetworkStructure__Group_4__213752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__LinksAssignment_4_2_in_rule__NetworkStructure__Group_4__2__Impl13779 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__3__Impl_in_rule__NetworkStructure__Group_4__313809 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__4_in_rule__NetworkStructure__Group_4__313812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4_3__0_in_rule__NetworkStructure__Group_4__3__Impl13839 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4__4__Impl_in_rule__NetworkStructure__Group_4__413870 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkStructure__Group_4__4__Impl13898 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4_3__0__Impl_in_rule__NetworkStructure__Group_4_3__013939 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000005L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4_3__1_in_rule__NetworkStructure__Group_4_3__013942 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkStructure__Group_4_3__0__Impl13970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__Group_4_3__1__Impl_in_rule__NetworkStructure__Group_4_3__114001 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkStructure__LinksAssignment_4_3_1_in_rule__NetworkStructure__Group_4_3__1__Impl14028 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__0__Impl_in_rule__NetworkConfiguration__Group__014062 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__1_in_rule__NetworkConfiguration__Group__014065 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_59_in_rule__NetworkConfiguration__Group__0__Impl14093 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__1__Impl_in_rule__NetworkConfiguration__Group__114124 = new BitSet(new long[]{0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__2_in_rule__NetworkConfiguration__Group__114127 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkConfiguration__Group__1__Impl14155 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__2__Impl_in_rule__NetworkConfiguration__Group__214186 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000008L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__3_in_rule__NetworkConfiguration__Group__214189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_60_in_rule__NetworkConfiguration__Group__2__Impl14217 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__3__Impl_in_rule__NetworkConfiguration__Group__314248 = new BitSet(new long[]{0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__4_in_rule__NetworkConfiguration__Group__314251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__ProtocolsAndStacksAssignment_3_in_rule__NetworkConfiguration__Group__3__Impl14278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__4__Impl_in_rule__NetworkConfiguration__Group__414308 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__5_in_rule__NetworkConfiguration__Group__414311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__NetworkConfiguration__Group__4__Impl14339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__5__Impl_in_rule__NetworkConfiguration__Group__514370 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__6_in_rule__NetworkConfiguration__Group__514373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__RoutesAssignment_5_in_rule__NetworkConfiguration__Group__5__Impl14400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkConfiguration__Group__6__Impl_in_rule__NetworkConfiguration__Group__614430 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkConfiguration__Group__6__Impl14458 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__0__Impl_in_rule__ExperimentParam__Group__014503 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__1_in_rule__ExperimentParam__Group__014506 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_62_in_rule__ExperimentParam__Group__0__Impl14534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__1__Impl_in_rule__ExperimentParam__Group__114565 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__2_in_rule__ExperimentParam__Group__114568 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__NameAssignment_1_in_rule__ExperimentParam__Group__1__Impl14595 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__2__Impl_in_rule__ExperimentParam__Group__214625 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__3_in_rule__ExperimentParam__Group__214628 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ExperimentParam__Group__2__Impl14656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__3__Impl_in_rule__ExperimentParam__Group__314687 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__4_in_rule__ExperimentParam__Group__314690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__ExperimentParam__Group__3__Impl14718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__4__Impl_in_rule__ExperimentParam__Group__414749 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__5_in_rule__ExperimentParam__Group__414752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__ValueAssignment_4_in_rule__ExperimentParam__Group__4__Impl14779 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ExperimentParam__Group__5__Impl_in_rule__ExperimentParam__Group__514809 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ExperimentParam__Group__5__Impl14837 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__0__Impl_in_rule__SoftwareComponent__Group__014880 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__1_in_rule__SoftwareComponent__Group__014883 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_64_in_rule__SoftwareComponent__Group__0__Impl14911 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__1__Impl_in_rule__SoftwareComponent__Group__114942 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__2_in_rule__SoftwareComponent__Group__114945 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__IdAssignment_1_in_rule__SoftwareComponent__Group__1__Impl14972 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__2__Impl_in_rule__SoftwareComponent__Group__215002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__3_in_rule__SoftwareComponent__Group__215005 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SoftwareComponent__Group__2__Impl15033 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__3__Impl_in_rule__SoftwareComponent__Group__315064 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__4_in_rule__SoftwareComponent__Group__315067 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__SoftwareComponent__Group__3__Impl15095 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__4__Impl_in_rule__SoftwareComponent__Group__415126 = new BitSet(new long[]{0x0000000000000000L,0x000000000000000CL});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__5_in_rule__SoftwareComponent__Group__415129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__NameAssignment_4_in_rule__SoftwareComponent__Group__4__Impl15156 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__5__Impl_in_rule__SoftwareComponent__Group__515186 = new BitSet(new long[]{0x0000000000000000L,0x000000000000000CL});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__6_in_rule__SoftwareComponent__Group__515189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__0_in_rule__SoftwareComponent__Group__5__Impl15216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__6__Impl_in_rule__SoftwareComponent__Group__615247 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__7_in_rule__SoftwareComponent__Group__615250 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_66_in_rule__SoftwareComponent__Group__6__Impl15278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__7__Impl_in_rule__SoftwareComponent__Group__715309 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000010L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__8_in_rule__SoftwareComponent__Group__715312 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__DeployedOnAssignment_7_in_rule__SoftwareComponent__Group__7__Impl15339 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__8__Impl_in_rule__SoftwareComponent__Group__815369 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000010L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__9_in_rule__SoftwareComponent__Group__815372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__0_in_rule__SoftwareComponent__Group__8__Impl15399 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group__9__Impl_in_rule__SoftwareComponent__Group__915430 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SoftwareComponent__Group__9__Impl15458 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__0__Impl_in_rule__SoftwareComponent__Group_5__015509 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__1_in_rule__SoftwareComponent__Group_5__015512 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__SoftwareComponent__Group_5__0__Impl15540 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__1__Impl_in_rule__SoftwareComponent__Group_5__115571 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__2_in_rule__SoftwareComponent__Group_5__115574 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SoftwareComponent__Group_5__1__Impl15602 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__2__Impl_in_rule__SoftwareComponent__Group_5__215633 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__3_in_rule__SoftwareComponent__Group_5__215636 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__AlternativeNamesAssignment_5_2_in_rule__SoftwareComponent__Group_5__2__Impl15663 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__3__Impl_in_rule__SoftwareComponent__Group_5__315693 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__4_in_rule__SoftwareComponent__Group_5__315696 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5_3__0_in_rule__SoftwareComponent__Group_5__3__Impl15723 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5__4__Impl_in_rule__SoftwareComponent__Group_5__415754 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SoftwareComponent__Group_5__4__Impl15782 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5_3__0__Impl_in_rule__SoftwareComponent__Group_5_3__015823 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5_3__1_in_rule__SoftwareComponent__Group_5_3__015826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__SoftwareComponent__Group_5_3__0__Impl15854 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_5_3__1__Impl_in_rule__SoftwareComponent__Group_5_3__115885 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__AlternativeNamesAssignment_5_3_1_in_rule__SoftwareComponent__Group_5_3__1__Impl15912 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__0__Impl_in_rule__SoftwareComponent__Group_8__015946 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__1_in_rule__SoftwareComponent__Group_8__015949 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_68_in_rule__SoftwareComponent__Group_8__0__Impl15977 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__1__Impl_in_rule__SoftwareComponent__Group_8__116008 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__2_in_rule__SoftwareComponent__Group_8__116011 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SoftwareComponent__Group_8__1__Impl16039 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__2__Impl_in_rule__SoftwareComponent__Group_8__216070 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__3_in_rule__SoftwareComponent__Group_8__216073 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__TrafficSourcesAssignment_8_2_in_rule__SoftwareComponent__Group_8__2__Impl16100 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__3__Impl_in_rule__SoftwareComponent__Group_8__316130 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__4_in_rule__SoftwareComponent__Group_8__316133 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8_3__0_in_rule__SoftwareComponent__Group_8__3__Impl16160 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8__4__Impl_in_rule__SoftwareComponent__Group_8__416191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SoftwareComponent__Group_8__4__Impl16219 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8_3__0__Impl_in_rule__SoftwareComponent__Group_8_3__016260 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8_3__1_in_rule__SoftwareComponent__Group_8_3__016263 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__SoftwareComponent__Group_8_3__0__Impl16291 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__Group_8_3__1__Impl_in_rule__SoftwareComponent__Group_8_3__116322 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SoftwareComponent__TrafficSourcesAssignment_8_3_1_in_rule__SoftwareComponent__Group_8_3__1__Impl16349 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__0__Impl_in_rule__EntityAddress__Group__016383 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__1_in_rule__EntityAddress__Group__016386 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__1__Impl_in_rule__EntityAddress__Group__116444 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__2_in_rule__EntityAddress__Group__116447 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_69_in_rule__EntityAddress__Group__1__Impl16475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__2__Impl_in_rule__EntityAddress__Group__216506 = new BitSet(new long[]{0x0000000020000000L,0x00000000000000C0L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__3_in_rule__EntityAddress__Group__216509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__EntityAddress__Group__2__Impl16537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__3__Impl_in_rule__EntityAddress__Group__316568 = new BitSet(new long[]{0x0000000020000000L,0x00000000000000C0L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__4_in_rule__EntityAddress__Group__316571 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_3__0_in_rule__EntityAddress__Group__3__Impl16598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__4__Impl_in_rule__EntityAddress__Group__416629 = new BitSet(new long[]{0x0000000020000000L,0x00000000000000C0L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__5_in_rule__EntityAddress__Group__416632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_4__0_in_rule__EntityAddress__Group__4__Impl16659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group__5__Impl_in_rule__EntityAddress__Group__516690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__EntityAddress__Group__5__Impl16718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_3__0__Impl_in_rule__EntityAddress__Group_3__016761 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_3__1_in_rule__EntityAddress__Group_3__016764 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_70_in_rule__EntityAddress__Group_3__0__Impl16792 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_3__1__Impl_in_rule__EntityAddress__Group_3__116823 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__AddressAssignment_3_1_in_rule__EntityAddress__Group_3__1__Impl16850 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_4__0__Impl_in_rule__EntityAddress__Group_4__016884 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_4__1_in_rule__EntityAddress__Group_4__016887 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_71_in_rule__EntityAddress__Group_4__0__Impl16915 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__Group_4__1__Impl_in_rule__EntityAddress__Group_4__116946 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EntityAddress__AddressGivenByAssignment_4_1_in_rule__EntityAddress__Group_4__1__Impl16973 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__0__Impl_in_rule__ONOFFFlow__Group__017007 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__1_in_rule__ONOFFFlow__Group__017010 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__StartStateAssignment_0_in_rule__ONOFFFlow__Group__0__Impl17037 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__1__Impl_in_rule__ONOFFFlow__Group__117067 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__2_in_rule__ONOFFFlow__Group__117070 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_72_in_rule__ONOFFFlow__Group__1__Impl17098 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__2__Impl_in_rule__ONOFFFlow__Group__217129 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__3_in_rule__ONOFFFlow__Group__217132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__IdAssignment_2_in_rule__ONOFFFlow__Group__2__Impl17159 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__3__Impl_in_rule__ONOFFFlow__Group__317189 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__4_in_rule__ONOFFFlow__Group__317192 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ONOFFFlow__Group__3__Impl17220 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__4__Impl_in_rule__ONOFFFlow__Group__417251 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__5_in_rule__ONOFFFlow__Group__417254 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__ONOFFFlow__Group__4__Impl17282 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__5__Impl_in_rule__ONOFFFlow__Group__517313 = new BitSet(new long[]{0x0000000000000000L,0x000000000000E208L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__6_in_rule__ONOFFFlow__Group__517316 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__NameAssignment_5_in_rule__ONOFFFlow__Group__5__Impl17343 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__6__Impl_in_rule__ONOFFFlow__Group__617373 = new BitSet(new long[]{0x0000000000000000L,0x000000000000E208L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__7_in_rule__ONOFFFlow__Group__617376 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__0_in_rule__ONOFFFlow__Group__6__Impl17403 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__7__Impl_in_rule__ONOFFFlow__Group__717434 = new BitSet(new long[]{0x0000000000000000L,0x000000000000E208L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__8_in_rule__ONOFFFlow__Group__717437 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_7__0_in_rule__ONOFFFlow__Group__7__Impl17464 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__8__Impl_in_rule__ONOFFFlow__Group__817495 = new BitSet(new long[]{0x0000000000000000L,0x000000000000E208L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__9_in_rule__ONOFFFlow__Group__817498 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_8__0_in_rule__ONOFFFlow__Group__8__Impl17525 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__9__Impl_in_rule__ONOFFFlow__Group__917556 = new BitSet(new long[]{0x0000000000000000L,0x000000000000E208L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__10_in_rule__ONOFFFlow__Group__917559 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__0_in_rule__ONOFFFlow__Group__9__Impl17586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__10__Impl_in_rule__ONOFFFlow__Group__1017617 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__11_in_rule__ONOFFFlow__Group__1017620 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_73_in_rule__ONOFFFlow__Group__10__Impl17648 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__11__Impl_in_rule__ONOFFFlow__Group__1117679 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__12_in_rule__ONOFFFlow__Group__1117682 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__ONstateIATAssignment_11_in_rule__ONOFFFlow__Group__11__Impl17709 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__12__Impl_in_rule__ONOFFFlow__Group__1217739 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__13_in_rule__ONOFFFlow__Group__1217742 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_74_in_rule__ONOFFFlow__Group__12__Impl17770 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__13__Impl_in_rule__ONOFFFlow__Group__1317801 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__14_in_rule__ONOFFFlow__Group__1317804 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__ONstateDurationAssignment_13_in_rule__ONOFFFlow__Group__13__Impl17831 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__14__Impl_in_rule__ONOFFFlow__Group__1417861 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__15_in_rule__ONOFFFlow__Group__1417864 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_75_in_rule__ONOFFFlow__Group__14__Impl17892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__15__Impl_in_rule__ONOFFFlow__Group__1517923 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__16_in_rule__ONOFFFlow__Group__1517926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__OFFstateDurationAssignment_15_in_rule__ONOFFFlow__Group__15__Impl17953 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__16__Impl_in_rule__ONOFFFlow__Group__1617983 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__17_in_rule__ONOFFFlow__Group__1617986 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_76_in_rule__ONOFFFlow__Group__16__Impl18014 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__17__Impl_in_rule__ONOFFFlow__Group__1718045 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__18_in_rule__ONOFFFlow__Group__1718048 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__PacketLengthAssignment_17_in_rule__ONOFFFlow__Group__17__Impl18075 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group__18__Impl_in_rule__ONOFFFlow__Group__1818105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ONOFFFlow__Group__18__Impl18133 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__0__Impl_in_rule__ONOFFFlow__Group_6__018202 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__1_in_rule__ONOFFFlow__Group_6__018205 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__ONOFFFlow__Group_6__0__Impl18233 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__1__Impl_in_rule__ONOFFFlow__Group_6__118264 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__2_in_rule__ONOFFFlow__Group_6__118267 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ONOFFFlow__Group_6__1__Impl18295 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__2__Impl_in_rule__ONOFFFlow__Group_6__218326 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__3_in_rule__ONOFFFlow__Group_6__218329 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__AlternativeNamesAssignment_6_2_in_rule__ONOFFFlow__Group_6__2__Impl18356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__3__Impl_in_rule__ONOFFFlow__Group_6__318386 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__4_in_rule__ONOFFFlow__Group_6__318389 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6_3__0_in_rule__ONOFFFlow__Group_6__3__Impl18416 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6__4__Impl_in_rule__ONOFFFlow__Group_6__418447 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ONOFFFlow__Group_6__4__Impl18475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6_3__0__Impl_in_rule__ONOFFFlow__Group_6_3__018516 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6_3__1_in_rule__ONOFFFlow__Group_6_3__018519 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ONOFFFlow__Group_6_3__0__Impl18547 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_6_3__1__Impl_in_rule__ONOFFFlow__Group_6_3__118578 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__AlternativeNamesAssignment_6_3_1_in_rule__ONOFFFlow__Group_6_3__1__Impl18605 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_7__0__Impl_in_rule__ONOFFFlow__Group_7__018639 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_7__1_in_rule__ONOFFFlow__Group_7__018642 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_77_in_rule__ONOFFFlow__Group_7__0__Impl18670 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_7__1__Impl_in_rule__ONOFFFlow__Group_7__118701 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_1_in_rule__ONOFFFlow__Group_7__1__Impl18728 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_8__0__Impl_in_rule__ONOFFFlow__Group_8__018762 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_8__1_in_rule__ONOFFFlow__Group_8__018765 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_78_in_rule__ONOFFFlow__Group_8__0__Impl18793 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_8__1__Impl_in_rule__ONOFFFlow__Group_8__118824 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_1_in_rule__ONOFFFlow__Group_8__1__Impl18851 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__0__Impl_in_rule__ONOFFFlow__Group_9__018885 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__1_in_rule__ONOFFFlow__Group_9__018888 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_79_in_rule__ONOFFFlow__Group_9__0__Impl18916 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__1__Impl_in_rule__ONOFFFlow__Group_9__118947 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__2_in_rule__ONOFFFlow__Group_9__118950 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ONOFFFlow__Group_9__1__Impl18978 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__2__Impl_in_rule__ONOFFFlow__Group_9__219009 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__3_in_rule__ONOFFFlow__Group_9__219012 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__DestinationAddressesAssignment_9_2_in_rule__ONOFFFlow__Group_9__2__Impl19039 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__3__Impl_in_rule__ONOFFFlow__Group_9__319069 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__4_in_rule__ONOFFFlow__Group_9__319072 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9_3__0_in_rule__ONOFFFlow__Group_9__3__Impl19099 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9__4__Impl_in_rule__ONOFFFlow__Group_9__419130 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ONOFFFlow__Group_9__4__Impl19158 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9_3__0__Impl_in_rule__ONOFFFlow__Group_9_3__019199 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9_3__1_in_rule__ONOFFFlow__Group_9_3__019202 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ONOFFFlow__Group_9_3__0__Impl19230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__Group_9_3__1__Impl_in_rule__ONOFFFlow__Group_9_3__119261 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ONOFFFlow__DestinationAddressesAssignment_9_3_1_in_rule__ONOFFFlow__Group_9_3__1__Impl19288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__0__Impl_in_rule__GenericFlow__Group__019322 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__1_in_rule__GenericFlow__Group__019325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_80_in_rule__GenericFlow__Group__0__Impl19353 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__1__Impl_in_rule__GenericFlow__Group__119384 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__2_in_rule__GenericFlow__Group__119387 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__IdAssignment_1_in_rule__GenericFlow__Group__1__Impl19414 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__2__Impl_in_rule__GenericFlow__Group__219444 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__3_in_rule__GenericFlow__Group__219447 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__GenericFlow__Group__2__Impl19475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__3__Impl_in_rule__GenericFlow__Group__319506 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__4_in_rule__GenericFlow__Group__319509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__GenericFlow__Group__3__Impl19537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__4__Impl_in_rule__GenericFlow__Group__419568 = new BitSet(new long[]{0x0000000000000000L,0x000000000002E008L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__5_in_rule__GenericFlow__Group__419571 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__NameAssignment_4_in_rule__GenericFlow__Group__4__Impl19598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__5__Impl_in_rule__GenericFlow__Group__519628 = new BitSet(new long[]{0x0000000000000000L,0x000000000002E008L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__6_in_rule__GenericFlow__Group__519631 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__0_in_rule__GenericFlow__Group__5__Impl19658 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__6__Impl_in_rule__GenericFlow__Group__619689 = new BitSet(new long[]{0x0000000000000000L,0x000000000002E008L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__7_in_rule__GenericFlow__Group__619692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_6__0_in_rule__GenericFlow__Group__6__Impl19719 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__7__Impl_in_rule__GenericFlow__Group__719750 = new BitSet(new long[]{0x0000000000000000L,0x000000000002E008L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__8_in_rule__GenericFlow__Group__719753 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_7__0_in_rule__GenericFlow__Group__7__Impl19780 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__8__Impl_in_rule__GenericFlow__Group__819811 = new BitSet(new long[]{0x0000000000000000L,0x000000000002E008L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__9_in_rule__GenericFlow__Group__819814 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__0_in_rule__GenericFlow__Group__8__Impl19841 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__9__Impl_in_rule__GenericFlow__Group__919872 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__10_in_rule__GenericFlow__Group__919875 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_81_in_rule__GenericFlow__Group__9__Impl19903 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__10__Impl_in_rule__GenericFlow__Group__1019934 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__11_in_rule__GenericFlow__Group__1019937 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__DataSizeAssignment_10_in_rule__GenericFlow__Group__10__Impl19964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group__11__Impl_in_rule__GenericFlow__Group__1119994 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__GenericFlow__Group__11__Impl20022 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__0__Impl_in_rule__GenericFlow__Group_5__020077 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__1_in_rule__GenericFlow__Group_5__020080 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__GenericFlow__Group_5__0__Impl20108 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__1__Impl_in_rule__GenericFlow__Group_5__120139 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__2_in_rule__GenericFlow__Group_5__120142 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__GenericFlow__Group_5__1__Impl20170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__2__Impl_in_rule__GenericFlow__Group_5__220201 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__3_in_rule__GenericFlow__Group_5__220204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__AlternativeNamesAssignment_5_2_in_rule__GenericFlow__Group_5__2__Impl20231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__3__Impl_in_rule__GenericFlow__Group_5__320261 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__4_in_rule__GenericFlow__Group_5__320264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5_3__0_in_rule__GenericFlow__Group_5__3__Impl20291 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5__4__Impl_in_rule__GenericFlow__Group_5__420322 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__GenericFlow__Group_5__4__Impl20350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5_3__0__Impl_in_rule__GenericFlow__Group_5_3__020391 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5_3__1_in_rule__GenericFlow__Group_5_3__020394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__GenericFlow__Group_5_3__0__Impl20422 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_5_3__1__Impl_in_rule__GenericFlow__Group_5_3__120453 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__AlternativeNamesAssignment_5_3_1_in_rule__GenericFlow__Group_5_3__1__Impl20480 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_6__0__Impl_in_rule__GenericFlow__Group_6__020514 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_6__1_in_rule__GenericFlow__Group_6__020517 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_77_in_rule__GenericFlow__Group_6__0__Impl20545 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_6__1__Impl_in_rule__GenericFlow__Group_6__120576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__DestinationSoftwareComponentAssignment_6_1_in_rule__GenericFlow__Group_6__1__Impl20603 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_7__0__Impl_in_rule__GenericFlow__Group_7__020637 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_7__1_in_rule__GenericFlow__Group_7__020640 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_78_in_rule__GenericFlow__Group_7__0__Impl20668 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_7__1__Impl_in_rule__GenericFlow__Group_7__120699 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__SourceSoftwareComponentAssignment_7_1_in_rule__GenericFlow__Group_7__1__Impl20726 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__0__Impl_in_rule__GenericFlow__Group_8__020760 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__1_in_rule__GenericFlow__Group_8__020763 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_79_in_rule__GenericFlow__Group_8__0__Impl20791 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__1__Impl_in_rule__GenericFlow__Group_8__120822 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__2_in_rule__GenericFlow__Group_8__120825 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__GenericFlow__Group_8__1__Impl20853 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__2__Impl_in_rule__GenericFlow__Group_8__220884 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__3_in_rule__GenericFlow__Group_8__220887 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__DestinationAddressesAssignment_8_2_in_rule__GenericFlow__Group_8__2__Impl20914 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__3__Impl_in_rule__GenericFlow__Group_8__320944 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__4_in_rule__GenericFlow__Group_8__320947 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8_3__0_in_rule__GenericFlow__Group_8__3__Impl20974 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8__4__Impl_in_rule__GenericFlow__Group_8__421005 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__GenericFlow__Group_8__4__Impl21033 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8_3__0__Impl_in_rule__GenericFlow__Group_8_3__021074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8_3__1_in_rule__GenericFlow__Group_8_3__021077 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__GenericFlow__Group_8_3__0__Impl21105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__Group_8_3__1__Impl_in_rule__GenericFlow__Group_8_3__121136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericFlow__DestinationAddressesAssignment_8_3_1_in_rule__GenericFlow__Group_8_3__1__Impl21163 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__0__Impl_in_rule__NetworkProtocol__Group__021197 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__1_in_rule__NetworkProtocol__Group__021200 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__DeliveryGuaranteedAssignment_0_in_rule__NetworkProtocol__Group__0__Impl21227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__1__Impl_in_rule__NetworkProtocol__Group__121258 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__2_in_rule__NetworkProtocol__Group__121261 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_82_in_rule__NetworkProtocol__Group__1__Impl21289 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__2__Impl_in_rule__NetworkProtocol__Group__221320 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__3_in_rule__NetworkProtocol__Group__221323 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__NameAssignment_2_in_rule__NetworkProtocol__Group__2__Impl21350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__3__Impl_in_rule__NetworkProtocol__Group__321380 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080008L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__4_in_rule__NetworkProtocol__Group__321383 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__NetworkProtocol__Group__3__Impl21411 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__4__Impl_in_rule__NetworkProtocol__Group__421442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080008L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__5_in_rule__NetworkProtocol__Group__421445 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__0_in_rule__NetworkProtocol__Group__4__Impl21472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__5__Impl_in_rule__NetworkProtocol__Group__521503 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__6_in_rule__NetworkProtocol__Group__521506 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_83_in_rule__NetworkProtocol__Group__5__Impl21534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__6__Impl_in_rule__NetworkProtocol__Group__621565 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__7_in_rule__NetworkProtocol__Group__621568 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__MtuAssignment_6_in_rule__NetworkProtocol__Group__6__Impl21595 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__7__Impl_in_rule__NetworkProtocol__Group__721625 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__8_in_rule__NetworkProtocol__Group__721628 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_84_in_rule__NetworkProtocol__Group__7__Impl21656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__8__Impl_in_rule__NetworkProtocol__Group__821687 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__9_in_rule__NetworkProtocol__Group__821690 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__HeadersLengthAssignment_8_in_rule__NetworkProtocol__Group__8__Impl21717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__9__Impl_in_rule__NetworkProtocol__Group__921747 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__10_in_rule__NetworkProtocol__Group__921750 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_85_in_rule__NetworkProtocol__Group__9__Impl21778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__10__Impl_in_rule__NetworkProtocol__Group__1021809 = new BitSet(new long[]{0x0000000020000000L,0x0000000000400000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__11_in_rule__NetworkProtocol__Group__1021812 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__DataUnitLengthAssignment_10_in_rule__NetworkProtocol__Group__10__Impl21839 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__11__Impl_in_rule__NetworkProtocol__Group__1121869 = new BitSet(new long[]{0x0000000020000000L,0x0000000000400000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__12_in_rule__NetworkProtocol__Group__1121872 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_11__0_in_rule__NetworkProtocol__Group__11__Impl21899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group__12__Impl_in_rule__NetworkProtocol__Group__1221930 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkProtocol__Group__12__Impl21958 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__0__Impl_in_rule__NetworkProtocol__Group_4__022015 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__1_in_rule__NetworkProtocol__Group_4__022018 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__NetworkProtocol__Group_4__0__Impl22046 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__1__Impl_in_rule__NetworkProtocol__Group_4__122077 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__2_in_rule__NetworkProtocol__Group_4__122080 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+    private static class FollowSets001 {
+        public static final BitSet FOLLOW_23_in_rule__NetworkProtocol__Group_4__1__Impl22108 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__2__Impl_in_rule__NetworkProtocol__Group_4__222139 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__3_in_rule__NetworkProtocol__Group_4__222142 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__AlternativeNamesAssignment_4_2_in_rule__NetworkProtocol__Group_4__2__Impl22169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__3__Impl_in_rule__NetworkProtocol__Group_4__322199 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__4_in_rule__NetworkProtocol__Group_4__322202 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4_3__0_in_rule__NetworkProtocol__Group_4__3__Impl22229 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4__4__Impl_in_rule__NetworkProtocol__Group_4__422260 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__NetworkProtocol__Group_4__4__Impl22288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4_3__0__Impl_in_rule__NetworkProtocol__Group_4_3__022329 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4_3__1_in_rule__NetworkProtocol__Group_4_3__022332 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__NetworkProtocol__Group_4_3__0__Impl22360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_4_3__1__Impl_in_rule__NetworkProtocol__Group_4_3__122391 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__AlternativeNamesAssignment_4_3_1_in_rule__NetworkProtocol__Group_4_3__1__Impl22418 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_11__0__Impl_in_rule__NetworkProtocol__Group_11__022452 = new BitSet(new long[]{0x0000000000001800L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_11__1_in_rule__NetworkProtocol__Group_11__022455 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_86_in_rule__NetworkProtocol__Group_11__0__Impl22483 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__Group_11__1__Impl_in_rule__NetworkProtocol__Group_11__122514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__NetworkProtocol__ConnectionlessAssignment_11_1_in_rule__NetworkProtocol__Group_11__1__Impl22541 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__0__Impl_in_rule__EInt__Group__022575 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EInt__Group__1_in_rule__EInt__Group__022578 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EInt__Group__0__Impl22607 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EInt__Group__1__Impl_in_rule__EInt__Group__122640 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EInt__Group__1__Impl22667 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__0__Impl_in_rule__ConstantDoubleVariable__Group__022700 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__1_in_rule__ConstantDoubleVariable__Group__022703 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_88_in_rule__ConstantDoubleVariable__Group__0__Impl22731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__1__Impl_in_rule__ConstantDoubleVariable__Group__122762 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__2_in_rule__ConstantDoubleVariable__Group__122765 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ConstantDoubleVariable__Group__1__Impl22793 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__2__Impl_in_rule__ConstantDoubleVariable__Group__222824 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__3_in_rule__ConstantDoubleVariable__Group__222827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__ConstantDoubleVariable__Group__2__Impl22855 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__3__Impl_in_rule__ConstantDoubleVariable__Group__322886 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__4_in_rule__ConstantDoubleVariable__Group__322889 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__ValueAssignment_3_in_rule__ConstantDoubleVariable__Group__3__Impl22916 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__4__Impl_in_rule__ConstantDoubleVariable__Group__422946 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__5_in_rule__ConstantDoubleVariable__Group__422949 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group_4__0_in_rule__ConstantDoubleVariable__Group__4__Impl22976 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group__5__Impl_in_rule__ConstantDoubleVariable__Group__523007 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ConstantDoubleVariable__Group__5__Impl23035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group_4__0__Impl_in_rule__ConstantDoubleVariable__Group_4__023078 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group_4__1_in_rule__ConstantDoubleVariable__Group_4__023081 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__ConstantDoubleVariable__Group_4__0__Impl23109 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__Group_4__1__Impl_in_rule__ConstantDoubleVariable__Group_4__123140 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantDoubleVariable__UnitAssignment_4_1_in_rule__ConstantDoubleVariable__Group_4__1__Impl23167 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__0__Impl_in_rule__ConstantLongVariable__Group__023201 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__1_in_rule__ConstantLongVariable__Group__023204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_90_in_rule__ConstantLongVariable__Group__0__Impl23232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__1__Impl_in_rule__ConstantLongVariable__Group__123263 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__2_in_rule__ConstantLongVariable__Group__123266 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ConstantLongVariable__Group__1__Impl23294 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__2__Impl_in_rule__ConstantLongVariable__Group__223325 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__3_in_rule__ConstantLongVariable__Group__223328 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__ConstantLongVariable__Group__2__Impl23356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__3__Impl_in_rule__ConstantLongVariable__Group__323387 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__4_in_rule__ConstantLongVariable__Group__323390 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__ValueAssignment_3_in_rule__ConstantLongVariable__Group__3__Impl23417 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__4__Impl_in_rule__ConstantLongVariable__Group__423447 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__5_in_rule__ConstantLongVariable__Group__423450 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group_4__0_in_rule__ConstantLongVariable__Group__4__Impl23477 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group__5__Impl_in_rule__ConstantLongVariable__Group__523508 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ConstantLongVariable__Group__5__Impl23536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group_4__0__Impl_in_rule__ConstantLongVariable__Group_4__023579 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group_4__1_in_rule__ConstantLongVariable__Group_4__023582 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__ConstantLongVariable__Group_4__0__Impl23610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__Group_4__1__Impl_in_rule__ConstantLongVariable__Group_4__123641 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ConstantLongVariable__UnitAssignment_4_1_in_rule__ConstantLongVariable__Group_4__1__Impl23668 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__0__Impl_in_rule__RandomVariable__Group__023702 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__1_in_rule__RandomVariable__Group__023705 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_91_in_rule__RandomVariable__Group__0__Impl23733 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__1__Impl_in_rule__RandomVariable__Group__123764 = new BitSet(new long[]{0x0000000000000000L,0x0000000012000000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__2_in_rule__RandomVariable__Group__123767 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RandomVariable__Group__1__Impl23795 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__2__Impl_in_rule__RandomVariable__Group__223826 = new BitSet(new long[]{0x0000000000000000L,0x0000000012000000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__3_in_rule__RandomVariable__Group__223829 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group_2__0_in_rule__RandomVariable__Group__2__Impl23856 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__3__Impl_in_rule__RandomVariable__Group__323887 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__4_in_rule__RandomVariable__Group__323890 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_92_in_rule__RandomVariable__Group__3__Impl23918 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__4__Impl_in_rule__RandomVariable__Group__423949 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__5_in_rule__RandomVariable__Group__423952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__CdfAssignment_4_in_rule__RandomVariable__Group__4__Impl23979 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group__5__Impl_in_rule__RandomVariable__Group__524009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RandomVariable__Group__5__Impl24037 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group_2__0__Impl_in_rule__RandomVariable__Group_2__024080 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group_2__1_in_rule__RandomVariable__Group_2__024083 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__RandomVariable__Group_2__0__Impl24111 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__Group_2__1__Impl_in_rule__RandomVariable__Group_2__124142 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RandomVariable__UnitAssignment_2_1_in_rule__RandomVariable__Group_2__1__Impl24169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__0__Impl_in_rule__ContinuousFunction__Group__024203 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__1_in_rule__ContinuousFunction__Group__024206 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_93_in_rule__ContinuousFunction__Group__0__Impl24234 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__1__Impl_in_rule__ContinuousFunction__Group__124265 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__2_in_rule__ContinuousFunction__Group__124268 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ContinuousFunction__Group__1__Impl24296 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__2__Impl_in_rule__ContinuousFunction__Group__224327 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__3_in_rule__ContinuousFunction__Group__224330 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_94_in_rule__ContinuousFunction__Group__2__Impl24358 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__3__Impl_in_rule__ContinuousFunction__Group__324389 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__4_in_rule__ContinuousFunction__Group__324392 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__NumArgsAssignment_3_in_rule__ContinuousFunction__Group__3__Impl24419 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__4__Impl_in_rule__ContinuousFunction__Group__424449 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__5_in_rule__ContinuousFunction__Group__424452 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_95_in_rule__ContinuousFunction__Group__4__Impl24480 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__5__Impl_in_rule__ContinuousFunction__Group__524511 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__6_in_rule__ContinuousFunction__Group__524514 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__EquationAssignment_5_in_rule__ContinuousFunction__Group__5__Impl24541 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__6__Impl_in_rule__ContinuousFunction__Group__624571 = new BitSet(new long[]{0x0000000020000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__7_in_rule__ContinuousFunction__Group__624574 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group_6__0_in_rule__ContinuousFunction__Group__6__Impl24601 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group__7__Impl_in_rule__ContinuousFunction__Group__724632 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ContinuousFunction__Group__7__Impl24660 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group_6__0__Impl_in_rule__ContinuousFunction__Group_6__024707 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group_6__1_in_rule__ContinuousFunction__Group_6__024710 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__ContinuousFunction__Group_6__0__Impl24738 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__Group_6__1__Impl_in_rule__ContinuousFunction__Group_6__124769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ContinuousFunction__UnitAssignment_6_1_in_rule__ContinuousFunction__Group_6__1__Impl24796 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__0__Impl_in_rule__DiscreteFunction__Group__024830 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__1_in_rule__DiscreteFunction__Group__024833 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_96_in_rule__DiscreteFunction__Group__0__Impl24861 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__1__Impl_in_rule__DiscreteFunction__Group__124892 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__2_in_rule__DiscreteFunction__Group__124895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__DiscreteFunction__Group__1__Impl24923 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__2__Impl_in_rule__DiscreteFunction__Group__224954 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__3_in_rule__DiscreteFunction__Group__224957 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_94_in_rule__DiscreteFunction__Group__2__Impl24985 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__3__Impl_in_rule__DiscreteFunction__Group__325016 = new BitSet(new long[]{0x0000000000000000L,0x0000000202000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__4_in_rule__DiscreteFunction__Group__325019 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__NumArgsAssignment_3_in_rule__DiscreteFunction__Group__3__Impl25046 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__4__Impl_in_rule__DiscreteFunction__Group__425076 = new BitSet(new long[]{0x0000000000000000L,0x0000000202000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__5_in_rule__DiscreteFunction__Group__425079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_4__0_in_rule__DiscreteFunction__Group__4__Impl25106 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__5__Impl_in_rule__DiscreteFunction__Group__525137 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__6_in_rule__DiscreteFunction__Group__525140 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_97_in_rule__DiscreteFunction__Group__5__Impl25168 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__6__Impl_in_rule__DiscreteFunction__Group__625199 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__7_in_rule__DiscreteFunction__Group__625202 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__DiscreteFunction__Group__6__Impl25230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__7__Impl_in_rule__DiscreteFunction__Group__725261 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__8_in_rule__DiscreteFunction__Group__725264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__XAssignment_7_in_rule__DiscreteFunction__Group__7__Impl25291 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__8__Impl_in_rule__DiscreteFunction__Group__825321 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__9_in_rule__DiscreteFunction__Group__825324 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_8__0_in_rule__DiscreteFunction__Group__8__Impl25351 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__9__Impl_in_rule__DiscreteFunction__Group__925382 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__10_in_rule__DiscreteFunction__Group__925385 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__DiscreteFunction__Group__9__Impl25413 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__10__Impl_in_rule__DiscreteFunction__Group__1025444 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__11_in_rule__DiscreteFunction__Group__1025447 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_98_in_rule__DiscreteFunction__Group__10__Impl25475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__11__Impl_in_rule__DiscreteFunction__Group__1125506 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__12_in_rule__DiscreteFunction__Group__1125509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__YAssignment_11_in_rule__DiscreteFunction__Group__11__Impl25536 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group__12__Impl_in_rule__DiscreteFunction__Group__1225566 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__DiscreteFunction__Group__12__Impl25594 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_4__0__Impl_in_rule__DiscreteFunction__Group_4__025651 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_4__1_in_rule__DiscreteFunction__Group_4__025654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__DiscreteFunction__Group_4__0__Impl25682 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_4__1__Impl_in_rule__DiscreteFunction__Group_4__125713 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__UnitAssignment_4_1_in_rule__DiscreteFunction__Group_4__1__Impl25740 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_8__0__Impl_in_rule__DiscreteFunction__Group_8__025774 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_8__1_in_rule__DiscreteFunction__Group_8__025777 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__DiscreteFunction__Group_8__0__Impl25805 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__Group_8__1__Impl_in_rule__DiscreteFunction__Group_8__125836 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DiscreteFunction__XAssignment_8_1_in_rule__DiscreteFunction__Group_8__1__Impl25863 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__0__Impl_in_rule__EFloat__Group__025897 = new BitSet(new long[]{0x0000000000000040L,0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__1_in_rule__EFloat__Group__025900 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EFloat__Group__0__Impl25929 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__1__Impl_in_rule__EFloat__Group__125962 = new BitSet(new long[]{0x0000000000000040L,0x0000000800000000L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__2_in_rule__EFloat__Group__125965 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EFloat__Group__1__Impl25993 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__2__Impl_in_rule__EFloat__Group__226024 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__3_in_rule__EFloat__Group__226027 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_99_in_rule__EFloat__Group__2__Impl26055 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__3__Impl_in_rule__EFloat__Group__326086 = new BitSet(new long[]{0x0000000000006000L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__4_in_rule__EFloat__Group__326089 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EFloat__Group__3__Impl26116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group__4__Impl_in_rule__EFloat__Group__426145 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__0_in_rule__EFloat__Group__4__Impl26172 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__0__Impl_in_rule__EFloat__Group_4__026213 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__1_in_rule__EFloat__Group_4__026216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Alternatives_4_0_in_rule__EFloat__Group_4__0__Impl26243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__1__Impl_in_rule__EFloat__Group_4__126273 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__2_in_rule__EFloat__Group_4__126276 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EFloat__Group_4__1__Impl26305 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EFloat__Group_4__2__Impl_in_rule__EFloat__Group_4__226338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EFloat__Group_4__2__Impl26365 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__0__Impl_in_rule__SpeedUnit__Group__026400 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__1_in_rule__SpeedUnit__Group__026403 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_100_in_rule__SpeedUnit__Group__0__Impl26431 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__1__Impl_in_rule__SpeedUnit__Group__126462 = new BitSet(new long[]{0x0000000000000000L,0x0000002000000000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__2_in_rule__SpeedUnit__Group__126465 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SpeedUnit__Group__1__Impl26493 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__2__Impl_in_rule__SpeedUnit__Group__226524 = new BitSet(new long[]{0x0000000000078000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__3_in_rule__SpeedUnit__Group__226527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_101_in_rule__SpeedUnit__Group__2__Impl26555 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__3__Impl_in_rule__SpeedUnit__Group__326586 = new BitSet(new long[]{0x8000000000000000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__4_in_rule__SpeedUnit__Group__326589 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__PrefixAssignment_3_in_rule__SpeedUnit__Group__3__Impl26616 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__4__Impl_in_rule__SpeedUnit__Group__426646 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__5_in_rule__SpeedUnit__Group__426649 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_63_in_rule__SpeedUnit__Group__4__Impl26677 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__5__Impl_in_rule__SpeedUnit__Group__526708 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__6_in_rule__SpeedUnit__Group__526711 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__ValueAssignment_5_in_rule__SpeedUnit__Group__5__Impl26738 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__6__Impl_in_rule__SpeedUnit__Group__626768 = new BitSet(new long[]{0x0000000000380000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__7_in_rule__SpeedUnit__Group__626771 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_89_in_rule__SpeedUnit__Group__6__Impl26799 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__7__Impl_in_rule__SpeedUnit__Group__726830 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__8_in_rule__SpeedUnit__Group__726833 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__UnitAssignment_7_in_rule__SpeedUnit__Group__7__Impl26860 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SpeedUnit__Group__8__Impl_in_rule__SpeedUnit__Group__826890 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SpeedUnit__Group__8__Impl26918 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__0__Impl_in_rule__EDouble__Group__026967 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1_in_rule__EDouble__Group__026970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EDouble__Group__0__Impl26999 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__1__Impl_in_rule__EDouble__Group__127032 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2_in_rule__EDouble__Group__127035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__1__Impl27063 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__2__Impl_in_rule__EDouble__Group__227094 = new BitSet(new long[]{0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3_in_rule__EDouble__Group__227097 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_99_in_rule__EDouble__Group__2__Impl27125 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__3__Impl_in_rule__EDouble__Group__327156 = new BitSet(new long[]{0x0000000000006000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4_in_rule__EDouble__Group__327159 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group__3__Impl27186 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group__4__Impl_in_rule__EDouble__Group__427215 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0_in_rule__EDouble__Group__4__Impl27242 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__0__Impl_in_rule__EDouble__Group_4__027283 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1_in_rule__EDouble__Group_4__027286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Alternatives_4_0_in_rule__EDouble__Group_4__0__Impl27313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__1__Impl_in_rule__EDouble__Group_4__127343 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2_in_rule__EDouble__Group_4__127346 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EDouble__Group_4__1__Impl27375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EDouble__Group_4__2__Impl_in_rule__EDouble__Group_4__227408 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EDouble__Group_4__2__Impl27435 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ELong__Group__0__Impl_in_rule__ELong__Group__027470 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ELong__Group__1_in_rule__ELong__Group__027473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__ELong__Group__0__Impl27502 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ELong__Group__1__Impl_in_rule__ELong__Group__127535 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__ELong__Group__1__Impl27562 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__0__Impl_in_rule__DataSeries__Group__027595 = new BitSet(new long[]{0x0000000000000000L,0x0000004000000000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__1_in_rule__DataSeries__Group__027598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__1__Impl_in_rule__DataSeries__Group__127656 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__2_in_rule__DataSeries__Group__127659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_102_in_rule__DataSeries__Group__1__Impl27687 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__2__Impl_in_rule__DataSeries__Group__227718 = new BitSet(new long[]{0x0000000020000000L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__3_in_rule__DataSeries__Group__227721 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__DataSeries__Group__2__Impl27749 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__3__Impl_in_rule__DataSeries__Group__327780 = new BitSet(new long[]{0x0000000020000000L,0x0000008000000000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__4_in_rule__DataSeries__Group__327783 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__0_in_rule__DataSeries__Group__3__Impl27810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group__4__Impl_in_rule__DataSeries__Group__427841 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__DataSeries__Group__4__Impl27869 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__0__Impl_in_rule__DataSeries__Group_3__027910 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__1_in_rule__DataSeries__Group_3__027913 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_103_in_rule__DataSeries__Group_3__0__Impl27941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__1__Impl_in_rule__DataSeries__Group_3__127972 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__2_in_rule__DataSeries__Group_3__127975 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__DataSeries__Group_3__1__Impl28003 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__2__Impl_in_rule__DataSeries__Group_3__228034 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__3_in_rule__DataSeries__Group_3__228037 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__DataAssignment_3_2_in_rule__DataSeries__Group_3__2__Impl28064 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__3__Impl_in_rule__DataSeries__Group_3__328094 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__4_in_rule__DataSeries__Group_3__328097 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3_3__0_in_rule__DataSeries__Group_3__3__Impl28124 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3__4__Impl_in_rule__DataSeries__Group_3__428155 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__DataSeries__Group_3__4__Impl28183 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3_3__0__Impl_in_rule__DataSeries__Group_3_3__028224 = new BitSet(new long[]{0x0000000000000040L,0x0000000800800000L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3_3__1_in_rule__DataSeries__Group_3_3__028227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__DataSeries__Group_3_3__0__Impl28255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__Group_3_3__1__Impl_in_rule__DataSeries__Group_3_3__128286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__DataSeries__DataAssignment_3_3_1_in_rule__DataSeries__Group_3_3__1__Impl28313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__0__Impl_in_rule__TrafficSource__Group__028347 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__1_in_rule__TrafficSource__Group__028350 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_104_in_rule__TrafficSource__Group__0__Impl28378 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__1__Impl_in_rule__TrafficSource__Group__128409 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__2_in_rule__TrafficSource__Group__128412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__IdAssignment_1_in_rule__TrafficSource__Group__1__Impl28439 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__2__Impl_in_rule__TrafficSource__Group__228469 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__3_in_rule__TrafficSource__Group__228472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__TrafficSource__Group__2__Impl28500 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__3__Impl_in_rule__TrafficSource__Group__328531 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__4_in_rule__TrafficSource__Group__328534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__TrafficSource__Group__3__Impl28562 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__4__Impl_in_rule__TrafficSource__Group__428593 = new BitSet(new long[]{0x0000000000000000L,0x0000060000000008L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__5_in_rule__TrafficSource__Group__428596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__NameAssignment_4_in_rule__TrafficSource__Group__4__Impl28623 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__5__Impl_in_rule__TrafficSource__Group__528653 = new BitSet(new long[]{0x0000000000000000L,0x0000060000000008L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__6_in_rule__TrafficSource__Group__528656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__0_in_rule__TrafficSource__Group__5__Impl28683 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__6__Impl_in_rule__TrafficSource__Group__628714 = new BitSet(new long[]{0x0000000000000000L,0x0000060000000008L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__7_in_rule__TrafficSource__Group__628717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__0_in_rule__TrafficSource__Group__6__Impl28744 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__7__Impl_in_rule__TrafficSource__Group__728775 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__8_in_rule__TrafficSource__Group__728778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_105_in_rule__TrafficSource__Group__7__Impl28806 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__8__Impl_in_rule__TrafficSource__Group__828837 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__9_in_rule__TrafficSource__Group__828840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__TrafficSource__Group__8__Impl28868 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__9__Impl_in_rule__TrafficSource__Group__928899 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__10_in_rule__TrafficSource__Group__928902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__WorkloadAssignment_9_in_rule__TrafficSource__Group__9__Impl28929 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__10__Impl_in_rule__TrafficSource__Group__1028959 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__11_in_rule__TrafficSource__Group__1028962 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_10__0_in_rule__TrafficSource__Group__10__Impl28989 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__11__Impl_in_rule__TrafficSource__Group__1129020 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__12_in_rule__TrafficSource__Group__1129023 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__TrafficSource__Group__11__Impl29051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group__12__Impl_in_rule__TrafficSource__Group__1229082 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__TrafficSource__Group__12__Impl29110 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__0__Impl_in_rule__TrafficSource__Group_5__029167 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__1_in_rule__TrafficSource__Group_5__029170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__TrafficSource__Group_5__0__Impl29198 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__1__Impl_in_rule__TrafficSource__Group_5__129229 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__2_in_rule__TrafficSource__Group_5__129232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__TrafficSource__Group_5__1__Impl29260 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__2__Impl_in_rule__TrafficSource__Group_5__229291 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__3_in_rule__TrafficSource__Group_5__229294 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__AlternativeNamesAssignment_5_2_in_rule__TrafficSource__Group_5__2__Impl29321 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__3__Impl_in_rule__TrafficSource__Group_5__329351 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__4_in_rule__TrafficSource__Group_5__329354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5_3__0_in_rule__TrafficSource__Group_5__3__Impl29381 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5__4__Impl_in_rule__TrafficSource__Group_5__429412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__TrafficSource__Group_5__4__Impl29440 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5_3__0__Impl_in_rule__TrafficSource__Group_5_3__029481 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5_3__1_in_rule__TrafficSource__Group_5_3__029484 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__TrafficSource__Group_5_3__0__Impl29512 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_5_3__1__Impl_in_rule__TrafficSource__Group_5_3__129543 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__AlternativeNamesAssignment_5_3_1_in_rule__TrafficSource__Group_5_3__1__Impl29570 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__0__Impl_in_rule__TrafficSource__Group_6__029604 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__1_in_rule__TrafficSource__Group_6__029607 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_106_in_rule__TrafficSource__Group_6__0__Impl29635 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__1__Impl_in_rule__TrafficSource__Group_6__129666 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__2_in_rule__TrafficSource__Group_6__129669 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__TrafficSource__Group_6__1__Impl29697 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__2__Impl_in_rule__TrafficSource__Group_6__229728 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__3_in_rule__TrafficSource__Group_6__229731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__AddressesAssignment_6_2_in_rule__TrafficSource__Group_6__2__Impl29758 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__3__Impl_in_rule__TrafficSource__Group_6__329788 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__4_in_rule__TrafficSource__Group_6__329791 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6_3__0_in_rule__TrafficSource__Group_6__3__Impl29818 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6__4__Impl_in_rule__TrafficSource__Group_6__429849 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__TrafficSource__Group_6__4__Impl29877 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6_3__0__Impl_in_rule__TrafficSource__Group_6_3__029918 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6_3__1_in_rule__TrafficSource__Group_6_3__029921 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__TrafficSource__Group_6_3__0__Impl29949 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_6_3__1__Impl_in_rule__TrafficSource__Group_6_3__129980 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__AddressesAssignment_6_3_1_in_rule__TrafficSource__Group_6_3__1__Impl30007 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_10__0__Impl_in_rule__TrafficSource__Group_10__030041 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_10__1_in_rule__TrafficSource__Group_10__030044 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__TrafficSource__Group_10__0__Impl30072 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__Group_10__1__Impl_in_rule__TrafficSource__Group_10__130103 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TrafficSource__WorkloadAssignment_10_1_in_rule__TrafficSource__Group_10__1__Impl30130 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__0__Impl_in_rule__GenericWorkload__Group__030164 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__1_in_rule__GenericWorkload__Group__030167 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__1__Impl_in_rule__GenericWorkload__Group__130225 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__2_in_rule__GenericWorkload__Group__130228 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_107_in_rule__GenericWorkload__Group__1__Impl30256 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__2__Impl_in_rule__GenericWorkload__Group__230287 = new BitSet(new long[]{0x0000000020000000L,0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__3_in_rule__GenericWorkload__Group__230290 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__GenericWorkload__Group__2__Impl30318 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__3__Impl_in_rule__GenericWorkload__Group__330349 = new BitSet(new long[]{0x0000000020000000L,0x0000100000000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__4_in_rule__GenericWorkload__Group__330352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__0_in_rule__GenericWorkload__Group__3__Impl30379 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group__4__Impl_in_rule__GenericWorkload__Group__430410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__GenericWorkload__Group__4__Impl30438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__0__Impl_in_rule__GenericWorkload__Group_3__030479 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__1_in_rule__GenericWorkload__Group_3__030482 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_108_in_rule__GenericWorkload__Group_3__0__Impl30510 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__1__Impl_in_rule__GenericWorkload__Group_3__130541 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__2_in_rule__GenericWorkload__Group_3__130544 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__GenericWorkload__Group_3__1__Impl30572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__2__Impl_in_rule__GenericWorkload__Group_3__230603 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__3_in_rule__GenericWorkload__Group_3__230606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__ActionsAssignment_3_2_in_rule__GenericWorkload__Group_3__2__Impl30633 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__3__Impl_in_rule__GenericWorkload__Group_3__330663 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__4_in_rule__GenericWorkload__Group_3__330666 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3_3__0_in_rule__GenericWorkload__Group_3__3__Impl30693 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3__4__Impl_in_rule__GenericWorkload__Group_3__430724 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__GenericWorkload__Group_3__4__Impl30752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3_3__0__Impl_in_rule__GenericWorkload__Group_3_3__030793 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3_3__1_in_rule__GenericWorkload__Group_3_3__030796 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__GenericWorkload__Group_3_3__0__Impl30824 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__Group_3_3__1__Impl_in_rule__GenericWorkload__Group_3_3__130855 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__GenericWorkload__ActionsAssignment_3_3_1_in_rule__GenericWorkload__Group_3_3__1__Impl30882 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__0__Impl_in_rule__BranchAction__Group__030916 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__1_in_rule__BranchAction__Group__030919 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_109_in_rule__BranchAction__Group__0__Impl30947 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__1__Impl_in_rule__BranchAction__Group__130978 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__2_in_rule__BranchAction__Group__130981 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__BranchAction__Group__1__Impl31009 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__2__Impl_in_rule__BranchAction__Group__231040 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__3_in_rule__BranchAction__Group__231043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_110_in_rule__BranchAction__Group__2__Impl31071 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__3__Impl_in_rule__BranchAction__Group__331102 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__4_in_rule__BranchAction__Group__331105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__BranchAction__Group__3__Impl31133 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__4__Impl_in_rule__BranchAction__Group__431164 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__5_in_rule__BranchAction__Group__431167 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__InternAssignment_4_in_rule__BranchAction__Group__4__Impl31194 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__5__Impl_in_rule__BranchAction__Group__531224 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__6_in_rule__BranchAction__Group__531227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_5__0_in_rule__BranchAction__Group__5__Impl31254 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__6__Impl_in_rule__BranchAction__Group__631285 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__7_in_rule__BranchAction__Group__631288 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__BranchAction__Group__6__Impl31316 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group__7__Impl_in_rule__BranchAction__Group__731347 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__BranchAction__Group__7__Impl31375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_5__0__Impl_in_rule__BranchAction__Group_5__031422 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_5__1_in_rule__BranchAction__Group_5__031425 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__BranchAction__Group_5__0__Impl31453 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__Group_5__1__Impl_in_rule__BranchAction__Group_5__131484 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__BranchAction__InternAssignment_5_1_in_rule__BranchAction__Group_5__1__Impl31511 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__0__Impl_in_rule__LoopAction__Group__031545 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__1_in_rule__LoopAction__Group__031548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_111_in_rule__LoopAction__Group__0__Impl31576 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__1__Impl_in_rule__LoopAction__Group__131607 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__2_in_rule__LoopAction__Group__131610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__LoopAction__Group__1__Impl31638 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__2__Impl_in_rule__LoopAction__Group__231669 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__3_in_rule__LoopAction__Group__231672 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_110_in_rule__LoopAction__Group__2__Impl31700 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__3__Impl_in_rule__LoopAction__Group__331731 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__4_in_rule__LoopAction__Group__331734 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__InternAssignment_3_in_rule__LoopAction__Group__3__Impl31761 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__4__Impl_in_rule__LoopAction__Group__431791 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__5_in_rule__LoopAction__Group__431794 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_112_in_rule__LoopAction__Group__4__Impl31822 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__5__Impl_in_rule__LoopAction__Group__531853 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__6_in_rule__LoopAction__Group__531856 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__NumIterationsAssignment_5_in_rule__LoopAction__Group__5__Impl31883 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__LoopAction__Group__6__Impl_in_rule__LoopAction__Group__631913 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__LoopAction__Group__6__Impl31941 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__0__Impl_in_rule__SequenceAction__Group__031986 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__1_in_rule__SequenceAction__Group__031989 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_113_in_rule__SequenceAction__Group__0__Impl32017 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__1__Impl_in_rule__SequenceAction__Group__132048 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__2_in_rule__SequenceAction__Group__132051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SequenceAction__Group__1__Impl32079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__2__Impl_in_rule__SequenceAction__Group__232110 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__3_in_rule__SequenceAction__Group__232113 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_110_in_rule__SequenceAction__Group__2__Impl32141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__3__Impl_in_rule__SequenceAction__Group__332172 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__4_in_rule__SequenceAction__Group__332175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__SequenceAction__Group__3__Impl32203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__4__Impl_in_rule__SequenceAction__Group__432234 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__5_in_rule__SequenceAction__Group__432237 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__InternAssignment_4_in_rule__SequenceAction__Group__4__Impl32264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__5__Impl_in_rule__SequenceAction__Group__532294 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__6_in_rule__SequenceAction__Group__532297 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group_5__0_in_rule__SequenceAction__Group__5__Impl32324 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__6__Impl_in_rule__SequenceAction__Group__632355 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__7_in_rule__SequenceAction__Group__632358 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SequenceAction__Group__6__Impl32386 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group__7__Impl_in_rule__SequenceAction__Group__732417 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__SequenceAction__Group__7__Impl32445 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group_5__0__Impl_in_rule__SequenceAction__Group_5__032492 = new BitSet(new long[]{0x0000000000000000L,0x005EA00000000000L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group_5__1_in_rule__SequenceAction__Group_5__032495 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__SequenceAction__Group_5__0__Impl32523 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__Group_5__1__Impl_in_rule__SequenceAction__Group_5__132554 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__SequenceAction__InternAssignment_5_1_in_rule__SequenceAction__Group_5__1__Impl32581 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__0__Impl_in_rule__StartAction__Group__032615 = new BitSet(new long[]{0x0000000000000000L,0x0004000000000000L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__1_in_rule__StartAction__Group__032618 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StartAction__Group__1__Impl_in_rule__StartAction__Group__132676 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_114_in_rule__StartAction__Group__1__Impl32704 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__0__Impl_in_rule__StopAction__Group__032739 = new BitSet(new long[]{0x0000000000000000L,0x0008000000000000L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__1_in_rule__StopAction__Group__032742 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__StopAction__Group__1__Impl_in_rule__StopAction__Group__132800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_115_in_rule__StopAction__Group__1__Impl32828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__0__Impl_in_rule__TransmitAction__Group__032863 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__1_in_rule__TransmitAction__Group__032866 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_116_in_rule__TransmitAction__Group__0__Impl32894 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__1__Impl_in_rule__TransmitAction__Group__132925 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__2_in_rule__TransmitAction__Group__132928 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__TransmitAction__Group__1__Impl32956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__2__Impl_in_rule__TransmitAction__Group__232987 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__3_in_rule__TransmitAction__Group__232990 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_117_in_rule__TransmitAction__Group__2__Impl33018 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__3__Impl_in_rule__TransmitAction__Group__333049 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__4_in_rule__TransmitAction__Group__333052 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__FlowAssignment_3_in_rule__TransmitAction__Group__3__Impl33079 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__TransmitAction__Group__4__Impl_in_rule__TransmitAction__Group__433109 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__TransmitAction__Group__4__Impl33137 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__0__Impl_in_rule__WaitAction__Group__033178 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__1_in_rule__WaitAction__Group__033181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_118_in_rule__WaitAction__Group__0__Impl33209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__1__Impl_in_rule__WaitAction__Group__133240 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__2_in_rule__WaitAction__Group__133243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__WaitAction__Group__1__Impl33271 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__2__Impl_in_rule__WaitAction__Group__233302 = new BitSet(new long[]{0x0000000000000000L,0x000000012D000000L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__3_in_rule__WaitAction__Group__233305 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_119_in_rule__WaitAction__Group__2__Impl33333 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__3__Impl_in_rule__WaitAction__Group__333364 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__4_in_rule__WaitAction__Group__333367 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__WaitTimeAssignment_3_in_rule__WaitAction__Group__3__Impl33394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__WaitAction__Group__4__Impl_in_rule__WaitAction__Group__433424 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__WaitAction__Group__4__Impl33452 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__0__Impl_in_rule__VirtualNode__Group__033494 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__1_in_rule__VirtualNode__Group__033497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_120_in_rule__VirtualNode__Group__0__Impl33525 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__1__Impl_in_rule__VirtualNode__Group__133556 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__2_in_rule__VirtualNode__Group__133559 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__IdAssignment_1_in_rule__VirtualNode__Group__1__Impl33586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__2__Impl_in_rule__VirtualNode__Group__233616 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__3_in_rule__VirtualNode__Group__233619 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNode__Group__2__Impl33647 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__3__Impl_in_rule__VirtualNode__Group__333678 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__4_in_rule__VirtualNode__Group__333681 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__VirtualNode__Group__3__Impl33709 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__4__Impl_in_rule__VirtualNode__Group__433740 = new BitSet(new long[]{0x0080000000000000L,0x0200000000000008L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__5_in_rule__VirtualNode__Group__433743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__NameAssignment_4_in_rule__VirtualNode__Group__4__Impl33770 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__5__Impl_in_rule__VirtualNode__Group__533800 = new BitSet(new long[]{0x0080000000000000L,0x0200000000000008L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__6_in_rule__VirtualNode__Group__533803 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__0_in_rule__VirtualNode__Group__5__Impl33830 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__6__Impl_in_rule__VirtualNode__Group__633861 = new BitSet(new long[]{0x0080000000000000L,0x0200000000000008L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__7_in_rule__VirtualNode__Group__633864 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__0_in_rule__VirtualNode__Group__6__Impl33891 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__7__Impl_in_rule__VirtualNode__Group__733922 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__8_in_rule__VirtualNode__Group__733925 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_121_in_rule__VirtualNode__Group__7__Impl33953 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__8__Impl_in_rule__VirtualNode__Group__833984 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__9_in_rule__VirtualNode__Group__833987 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__HostedOnAssignment_8_in_rule__VirtualNode__Group__8__Impl34014 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__9__Impl_in_rule__VirtualNode__Group__934044 = new BitSet(new long[]{0x0008066100000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__10_in_rule__VirtualNode__Group__934047 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__VirtualNode__Group__9__Impl34075 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__10__Impl_in_rule__VirtualNode__Group__1034106 = new BitSet(new long[]{0x0000000020000000L,0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__11_in_rule__VirtualNode__Group__1034109 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__PerformanceAssignment_10_in_rule__VirtualNode__Group__10__Impl34136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__11__Impl_in_rule__VirtualNode__Group__1134166 = new BitSet(new long[]{0x0000000020000000L,0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__12_in_rule__VirtualNode__Group__1134169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__0_in_rule__VirtualNode__Group__11__Impl34196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group__12__Impl_in_rule__VirtualNode__Group__1234227 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNode__Group__12__Impl34255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__0__Impl_in_rule__VirtualNode__Group_5__034312 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__1_in_rule__VirtualNode__Group_5__034315 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__VirtualNode__Group_5__0__Impl34343 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__1__Impl_in_rule__VirtualNode__Group_5__134374 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__2_in_rule__VirtualNode__Group_5__134377 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNode__Group_5__1__Impl34405 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__2__Impl_in_rule__VirtualNode__Group_5__234436 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__3_in_rule__VirtualNode__Group_5__234439 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__AlternativeNamesAssignment_5_2_in_rule__VirtualNode__Group_5__2__Impl34466 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__3__Impl_in_rule__VirtualNode__Group_5__334496 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__4_in_rule__VirtualNode__Group_5__334499 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5_3__0_in_rule__VirtualNode__Group_5__3__Impl34526 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5__4__Impl_in_rule__VirtualNode__Group_5__434557 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNode__Group_5__4__Impl34585 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5_3__0__Impl_in_rule__VirtualNode__Group_5_3__034626 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5_3__1_in_rule__VirtualNode__Group_5_3__034629 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualNode__Group_5_3__0__Impl34657 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_5_3__1__Impl_in_rule__VirtualNode__Group_5_3__134688 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__AlternativeNamesAssignment_5_3_1_in_rule__VirtualNode__Group_5_3__1__Impl34715 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__0__Impl_in_rule__VirtualNode__Group_6__034749 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__1_in_rule__VirtualNode__Group_6__034752 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_55_in_rule__VirtualNode__Group_6__0__Impl34780 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__1__Impl_in_rule__VirtualNode__Group_6__134811 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__2_in_rule__VirtualNode__Group_6__134814 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_123_in_rule__VirtualNode__Group_6__1__Impl34842 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__2__Impl_in_rule__VirtualNode__Group_6__234873 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__3_in_rule__VirtualNode__Group_6__234876 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__SoftwareAssignment_6_2_in_rule__VirtualNode__Group_6__2__Impl34903 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__3__Impl_in_rule__VirtualNode__Group_6__334933 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__4_in_rule__VirtualNode__Group_6__334936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6_3__0_in_rule__VirtualNode__Group_6__3__Impl34963 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6__4__Impl_in_rule__VirtualNode__Group_6__434994 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_124_in_rule__VirtualNode__Group_6__4__Impl35022 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6_3__0__Impl_in_rule__VirtualNode__Group_6_3__035063 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6_3__1_in_rule__VirtualNode__Group_6_3__035066 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualNode__Group_6_3__0__Impl35094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_6_3__1__Impl_in_rule__VirtualNode__Group_6_3__135125 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__SoftwareAssignment_6_3_1_in_rule__VirtualNode__Group_6_3__1__Impl35152 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__0__Impl_in_rule__VirtualNode__Group_11__035186 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__1_in_rule__VirtualNode__Group_11__035189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_125_in_rule__VirtualNode__Group_11__0__Impl35217 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__1__Impl_in_rule__VirtualNode__Group_11__135248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__2_in_rule__VirtualNode__Group_11__135251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNode__Group_11__1__Impl35279 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__2__Impl_in_rule__VirtualNode__Group_11__235310 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__3_in_rule__VirtualNode__Group_11__235313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__InterfacesAssignment_11_2_in_rule__VirtualNode__Group_11__2__Impl35340 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__3__Impl_in_rule__VirtualNode__Group_11__335370 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__4_in_rule__VirtualNode__Group_11__335373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11_3__0_in_rule__VirtualNode__Group_11__3__Impl35400 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11__4__Impl_in_rule__VirtualNode__Group_11__435431 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNode__Group_11__4__Impl35459 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11_3__0__Impl_in_rule__VirtualNode__Group_11_3__035500 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000040000000L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11_3__1_in_rule__VirtualNode__Group_11_3__035503 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualNode__Group_11_3__0__Impl35531 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__Group_11_3__1__Impl_in_rule__VirtualNode__Group_11_3__135562 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNode__InterfacesAssignment_11_3_1_in_rule__VirtualNode__Group_11_3__1__Impl35589 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__0__Impl_in_rule__PhysicalNode__Group__035623 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__1_in_rule__PhysicalNode__Group__035626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_126_in_rule__PhysicalNode__Group__0__Impl35654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__1__Impl_in_rule__PhysicalNode__Group__135685 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__2_in_rule__PhysicalNode__Group__135688 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__IdAssignment_1_in_rule__PhysicalNode__Group__1__Impl35715 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__2__Impl_in_rule__PhysicalNode__Group__235745 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__3_in_rule__PhysicalNode__Group__235748 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNode__Group__2__Impl35776 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__3__Impl_in_rule__PhysicalNode__Group__335807 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__4_in_rule__PhysicalNode__Group__335810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__PhysicalNode__Group__3__Impl35838 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__4__Impl_in_rule__PhysicalNode__Group__435869 = new BitSet(new long[]{0x0080000000000000L,0x8400000000000008L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__5_in_rule__PhysicalNode__Group__435872 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__NameAssignment_4_in_rule__PhysicalNode__Group__4__Impl35899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__5__Impl_in_rule__PhysicalNode__Group__535929 = new BitSet(new long[]{0x0080000000000000L,0x8400000000000008L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__6_in_rule__PhysicalNode__Group__535932 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__0_in_rule__PhysicalNode__Group__5__Impl35959 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__6__Impl_in_rule__PhysicalNode__Group__635990 = new BitSet(new long[]{0x0080000000000000L,0x8400000000000008L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__7_in_rule__PhysicalNode__Group__635993 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__0_in_rule__PhysicalNode__Group__6__Impl36020 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__7__Impl_in_rule__PhysicalNode__Group__736051 = new BitSet(new long[]{0x0080000000000000L,0x8400000000000008L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__8_in_rule__PhysicalNode__Group__736054 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__0_in_rule__PhysicalNode__Group__7__Impl36081 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__8__Impl_in_rule__PhysicalNode__Group__836112 = new BitSet(new long[]{0x0008066100000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__9_in_rule__PhysicalNode__Group__836115 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__PhysicalNode__Group__8__Impl36143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__9__Impl_in_rule__PhysicalNode__Group__936174 = new BitSet(new long[]{0x0000000020000000L,0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__10_in_rule__PhysicalNode__Group__936177 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__PerformanceAssignment_9_in_rule__PhysicalNode__Group__9__Impl36204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__10__Impl_in_rule__PhysicalNode__Group__1036234 = new BitSet(new long[]{0x0000000020000000L,0x2000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__11_in_rule__PhysicalNode__Group__1036237 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__0_in_rule__PhysicalNode__Group__10__Impl36264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group__11__Impl_in_rule__PhysicalNode__Group__1136295 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNode__Group__11__Impl36323 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__0__Impl_in_rule__PhysicalNode__Group_5__036378 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__1_in_rule__PhysicalNode__Group_5__036381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__PhysicalNode__Group_5__0__Impl36409 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__1__Impl_in_rule__PhysicalNode__Group_5__136440 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__2_in_rule__PhysicalNode__Group_5__136443 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNode__Group_5__1__Impl36471 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__2__Impl_in_rule__PhysicalNode__Group_5__236502 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__3_in_rule__PhysicalNode__Group_5__236505 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__AlternativeNamesAssignment_5_2_in_rule__PhysicalNode__Group_5__2__Impl36532 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__3__Impl_in_rule__PhysicalNode__Group_5__336562 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__4_in_rule__PhysicalNode__Group_5__336565 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5_3__0_in_rule__PhysicalNode__Group_5__3__Impl36592 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5__4__Impl_in_rule__PhysicalNode__Group_5__436623 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNode__Group_5__4__Impl36651 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5_3__0__Impl_in_rule__PhysicalNode__Group_5_3__036692 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5_3__1_in_rule__PhysicalNode__Group_5_3__036695 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNode__Group_5_3__0__Impl36723 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_5_3__1__Impl_in_rule__PhysicalNode__Group_5_3__136754 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalNode__Group_5_3__1__Impl36781 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__0__Impl_in_rule__PhysicalNode__Group_6__036815 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__1_in_rule__PhysicalNode__Group_6__036818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_55_in_rule__PhysicalNode__Group_6__0__Impl36846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__1__Impl_in_rule__PhysicalNode__Group_6__136877 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__2_in_rule__PhysicalNode__Group_6__136880 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_123_in_rule__PhysicalNode__Group_6__1__Impl36908 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__2__Impl_in_rule__PhysicalNode__Group_6__236939 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__3_in_rule__PhysicalNode__Group_6__236942 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__SoftwareAssignment_6_2_in_rule__PhysicalNode__Group_6__2__Impl36969 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__3__Impl_in_rule__PhysicalNode__Group_6__336999 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__4_in_rule__PhysicalNode__Group_6__337002 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6_3__0_in_rule__PhysicalNode__Group_6__3__Impl37029 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6__4__Impl_in_rule__PhysicalNode__Group_6__437060 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_124_in_rule__PhysicalNode__Group_6__4__Impl37088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6_3__0__Impl_in_rule__PhysicalNode__Group_6_3__037129 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6_3__1_in_rule__PhysicalNode__Group_6_3__037132 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNode__Group_6_3__0__Impl37160 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_6_3__1__Impl_in_rule__PhysicalNode__Group_6_3__137191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__SoftwareAssignment_6_3_1_in_rule__PhysicalNode__Group_6_3__1__Impl37218 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__0__Impl_in_rule__PhysicalNode__Group_7__037252 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__1_in_rule__PhysicalNode__Group_7__037255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_127_in_rule__PhysicalNode__Group_7__0__Impl37283 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__1__Impl_in_rule__PhysicalNode__Group_7__137314 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__2_in_rule__PhysicalNode__Group_7__137317 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_123_in_rule__PhysicalNode__Group_7__1__Impl37345 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__2__Impl_in_rule__PhysicalNode__Group_7__237376 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__3_in_rule__PhysicalNode__Group_7__237379 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__HostsAssignment_7_2_in_rule__PhysicalNode__Group_7__2__Impl37406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__3__Impl_in_rule__PhysicalNode__Group_7__337436 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__4_in_rule__PhysicalNode__Group_7__337439 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7_3__0_in_rule__PhysicalNode__Group_7__3__Impl37466 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7__4__Impl_in_rule__PhysicalNode__Group_7__437497 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_124_in_rule__PhysicalNode__Group_7__4__Impl37525 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7_3__0__Impl_in_rule__PhysicalNode__Group_7_3__037566 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7_3__1_in_rule__PhysicalNode__Group_7_3__037569 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNode__Group_7_3__0__Impl37597 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_7_3__1__Impl_in_rule__PhysicalNode__Group_7_3__137628 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__HostsAssignment_7_3_1_in_rule__PhysicalNode__Group_7_3__1__Impl37655 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__0__Impl_in_rule__PhysicalNode__Group_10__037689 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__1_in_rule__PhysicalNode__Group_10__037692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_125_in_rule__PhysicalNode__Group_10__0__Impl37720 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__1__Impl_in_rule__PhysicalNode__Group_10__137751 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000050000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__2_in_rule__PhysicalNode__Group_10__137754 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNode__Group_10__1__Impl37782 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__2__Impl_in_rule__PhysicalNode__Group_10__237813 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__3_in_rule__PhysicalNode__Group_10__237816 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__InterfacesAssignment_10_2_in_rule__PhysicalNode__Group_10__2__Impl37843 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__3__Impl_in_rule__PhysicalNode__Group_10__337873 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__4_in_rule__PhysicalNode__Group_10__337876 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10_3__0_in_rule__PhysicalNode__Group_10__3__Impl37903 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10__4__Impl_in_rule__PhysicalNode__Group_10__437934 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNode__Group_10__4__Impl37962 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10_3__0__Impl_in_rule__PhysicalNode__Group_10_3__038003 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000050000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10_3__1_in_rule__PhysicalNode__Group_10_3__038006 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNode__Group_10_3__0__Impl38034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__Group_10_3__1__Impl_in_rule__PhysicalNode__Group_10_3__138065 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNode__InterfacesAssignment_10_3_1_in_rule__PhysicalNode__Group_10_3__1__Impl38092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__0__Impl_in_rule__PhysicalLink__Group__038126 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__1_in_rule__PhysicalLink__Group__038129 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_128_in_rule__PhysicalLink__Group__0__Impl38157 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__1__Impl_in_rule__PhysicalLink__Group__138188 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__2_in_rule__PhysicalLink__Group__138191 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__IdAssignment_1_in_rule__PhysicalLink__Group__1__Impl38218 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__2__Impl_in_rule__PhysicalLink__Group__238248 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__3_in_rule__PhysicalLink__Group__238251 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalLink__Group__2__Impl38279 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__3__Impl_in_rule__PhysicalLink__Group__338310 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__4_in_rule__PhysicalLink__Group__338313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__PhysicalLink__Group__3__Impl38341 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__4__Impl_in_rule__PhysicalLink__Group__438372 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__5_in_rule__PhysicalLink__Group__438375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__NameAssignment_4_in_rule__PhysicalLink__Group__4__Impl38402 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__5__Impl_in_rule__PhysicalLink__Group__538432 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__6_in_rule__PhysicalLink__Group__538435 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__0_in_rule__PhysicalLink__Group__5__Impl38462 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__6__Impl_in_rule__PhysicalLink__Group__638493 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__7_in_rule__PhysicalLink__Group__638496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_129_in_rule__PhysicalLink__Group__6__Impl38524 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__7__Impl_in_rule__PhysicalLink__Group__738555 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__8_in_rule__PhysicalLink__Group__738558 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_123_in_rule__PhysicalLink__Group__7__Impl38586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__8__Impl_in_rule__PhysicalLink__Group__838617 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__9_in_rule__PhysicalLink__Group__838620 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__ConnectsAssignment_8_in_rule__PhysicalLink__Group__8__Impl38647 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__9__Impl_in_rule__PhysicalLink__Group__938677 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__10_in_rule__PhysicalLink__Group__938680 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_9__0_in_rule__PhysicalLink__Group__9__Impl38707 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__10__Impl_in_rule__PhysicalLink__Group__1038738 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__11_in_rule__PhysicalLink__Group__1038741 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_124_in_rule__PhysicalLink__Group__10__Impl38769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__11__Impl_in_rule__PhysicalLink__Group__1138800 = new BitSet(new long[]{0x0008066100000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__12_in_rule__PhysicalLink__Group__1138803 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__PhysicalLink__Group__11__Impl38831 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__12__Impl_in_rule__PhysicalLink__Group__1238862 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__13_in_rule__PhysicalLink__Group__1238865 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__PerformanceAssignment_12_in_rule__PhysicalLink__Group__12__Impl38892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group__13__Impl_in_rule__PhysicalLink__Group__1338922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalLink__Group__13__Impl38950 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__0__Impl_in_rule__PhysicalLink__Group_5__039009 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__1_in_rule__PhysicalLink__Group_5__039012 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__PhysicalLink__Group_5__0__Impl39040 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__1__Impl_in_rule__PhysicalLink__Group_5__139071 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__2_in_rule__PhysicalLink__Group_5__139074 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalLink__Group_5__1__Impl39102 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__2__Impl_in_rule__PhysicalLink__Group_5__239133 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__3_in_rule__PhysicalLink__Group_5__239136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__AlternativeNamesAssignment_5_2_in_rule__PhysicalLink__Group_5__2__Impl39163 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__3__Impl_in_rule__PhysicalLink__Group_5__339193 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__4_in_rule__PhysicalLink__Group_5__339196 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5_3__0_in_rule__PhysicalLink__Group_5__3__Impl39223 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5__4__Impl_in_rule__PhysicalLink__Group_5__439254 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalLink__Group_5__4__Impl39282 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5_3__0__Impl_in_rule__PhysicalLink__Group_5_3__039323 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5_3__1_in_rule__PhysicalLink__Group_5_3__039326 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalLink__Group_5_3__0__Impl39354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_5_3__1__Impl_in_rule__PhysicalLink__Group_5_3__139385 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalLink__Group_5_3__1__Impl39412 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_9__0__Impl_in_rule__PhysicalLink__Group_9__039446 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_9__1_in_rule__PhysicalLink__Group_9__039449 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalLink__Group_9__0__Impl39477 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__Group_9__1__Impl_in_rule__PhysicalLink__Group_9__139508 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalLink__ConnectsAssignment_9_1_in_rule__PhysicalLink__Group_9__1__Impl39535 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__0__Impl_in_rule__VirtualLink__Group__039569 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__1_in_rule__VirtualLink__Group__039572 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_130_in_rule__VirtualLink__Group__0__Impl39600 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__1__Impl_in_rule__VirtualLink__Group__139631 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__2_in_rule__VirtualLink__Group__139634 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__IdAssignment_1_in_rule__VirtualLink__Group__1__Impl39661 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__2__Impl_in_rule__VirtualLink__Group__239691 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__3_in_rule__VirtualLink__Group__239694 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualLink__Group__2__Impl39722 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__3__Impl_in_rule__VirtualLink__Group__339753 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__4_in_rule__VirtualLink__Group__339756 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__VirtualLink__Group__3__Impl39784 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__4__Impl_in_rule__VirtualLink__Group__439815 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__5_in_rule__VirtualLink__Group__439818 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__NameAssignment_4_in_rule__VirtualLink__Group__4__Impl39845 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__5__Impl_in_rule__VirtualLink__Group__539875 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__6_in_rule__VirtualLink__Group__539878 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__0_in_rule__VirtualLink__Group__5__Impl39905 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__6__Impl_in_rule__VirtualLink__Group__639936 = new BitSet(new long[]{0x0000000000000000L,0x0800000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__7_in_rule__VirtualLink__Group__639939 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_129_in_rule__VirtualLink__Group__6__Impl39967 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__7__Impl_in_rule__VirtualLink__Group__739998 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__8_in_rule__VirtualLink__Group__740001 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_123_in_rule__VirtualLink__Group__7__Impl40029 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__8__Impl_in_rule__VirtualLink__Group__840060 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__9_in_rule__VirtualLink__Group__840063 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__ConnectsAssignment_8_in_rule__VirtualLink__Group__8__Impl40090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__9__Impl_in_rule__VirtualLink__Group__940120 = new BitSet(new long[]{0x0000000080000000L,0x1000000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__10_in_rule__VirtualLink__Group__940123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_9__0_in_rule__VirtualLink__Group__9__Impl40150 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__10__Impl_in_rule__VirtualLink__Group__1040181 = new BitSet(new long[]{0x0000000000000000L,0x0400000000000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__11_in_rule__VirtualLink__Group__1040184 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_124_in_rule__VirtualLink__Group__10__Impl40212 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__11__Impl_in_rule__VirtualLink__Group__1140243 = new BitSet(new long[]{0x0008066100000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__12_in_rule__VirtualLink__Group__1140246 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__VirtualLink__Group__11__Impl40274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__12__Impl_in_rule__VirtualLink__Group__1240305 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__13_in_rule__VirtualLink__Group__1240308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__PerformanceAssignment_12_in_rule__VirtualLink__Group__12__Impl40335 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group__13__Impl_in_rule__VirtualLink__Group__1340365 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualLink__Group__13__Impl40393 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__0__Impl_in_rule__VirtualLink__Group_5__040452 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__1_in_rule__VirtualLink__Group_5__040455 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__VirtualLink__Group_5__0__Impl40483 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__1__Impl_in_rule__VirtualLink__Group_5__140514 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__2_in_rule__VirtualLink__Group_5__140517 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualLink__Group_5__1__Impl40545 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__2__Impl_in_rule__VirtualLink__Group_5__240576 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__3_in_rule__VirtualLink__Group_5__240579 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__AlternativeNamesAssignment_5_2_in_rule__VirtualLink__Group_5__2__Impl40606 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__3__Impl_in_rule__VirtualLink__Group_5__340636 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__4_in_rule__VirtualLink__Group_5__340639 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5_3__0_in_rule__VirtualLink__Group_5__3__Impl40666 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5__4__Impl_in_rule__VirtualLink__Group_5__440697 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualLink__Group_5__4__Impl40725 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5_3__0__Impl_in_rule__VirtualLink__Group_5_3__040766 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5_3__1_in_rule__VirtualLink__Group_5_3__040769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualLink__Group_5_3__0__Impl40797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_5_3__1__Impl_in_rule__VirtualLink__Group_5_3__140828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__AlternativeNamesAssignment_5_3_1_in_rule__VirtualLink__Group_5_3__1__Impl40855 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_9__0__Impl_in_rule__VirtualLink__Group_9__040889 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_9__1_in_rule__VirtualLink__Group_9__040892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualLink__Group_9__0__Impl40920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__Group_9__1__Impl_in_rule__VirtualLink__Group_9__140951 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualLink__ConnectsAssignment_9_1_in_rule__VirtualLink__Group_9__1__Impl40978 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__0__Impl_in_rule__ProtocolsRepository__Group__041012 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__1_in_rule__ProtocolsRepository__Group__041015 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_131_in_rule__ProtocolsRepository__Group__0__Impl41043 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__1__Impl_in_rule__ProtocolsRepository__Group__141074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__2_in_rule__ProtocolsRepository__Group__141077 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolsRepository__Group__1__Impl41105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__2__Impl_in_rule__ProtocolsRepository__Group__241136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__3_in_rule__ProtocolsRepository__Group__241139 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__0_in_rule__ProtocolsRepository__Group__2__Impl41166 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__3__Impl_in_rule__ProtocolsRepository__Group__341197 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__4_in_rule__ProtocolsRepository__Group__341200 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_132_in_rule__ProtocolsRepository__Group__3__Impl41228 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__4__Impl_in_rule__ProtocolsRepository__Group__441259 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L,0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__5_in_rule__ProtocolsRepository__Group__441262 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolsRepository__Group__4__Impl41290 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__5__Impl_in_rule__ProtocolsRepository__Group__541321 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__6_in_rule__ProtocolsRepository__Group__541324 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__ProtocolsAssignment_5_in_rule__ProtocolsRepository__Group__5__Impl41351 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__6__Impl_in_rule__ProtocolsRepository__Group__641381 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__7_in_rule__ProtocolsRepository__Group__641384 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_6__0_in_rule__ProtocolsRepository__Group__6__Impl41411 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__7__Impl_in_rule__ProtocolsRepository__Group__741442 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__8_in_rule__ProtocolsRepository__Group__741445 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolsRepository__Group__7__Impl41473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group__8__Impl_in_rule__ProtocolsRepository__Group__841504 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolsRepository__Group__8__Impl41532 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__0__Impl_in_rule__ProtocolsRepository__Group_2__041581 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__1_in_rule__ProtocolsRepository__Group_2__041584 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_133_in_rule__ProtocolsRepository__Group_2__0__Impl41612 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__1__Impl_in_rule__ProtocolsRepository__Group_2__141643 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__2_in_rule__ProtocolsRepository__Group_2__141646 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolsRepository__Group_2__1__Impl41674 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__2__Impl_in_rule__ProtocolsRepository__Group_2__241705 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__3_in_rule__ProtocolsRepository__Group_2__241708 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__StacksAssignment_2_2_in_rule__ProtocolsRepository__Group_2__2__Impl41735 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__3__Impl_in_rule__ProtocolsRepository__Group_2__341765 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__4_in_rule__ProtocolsRepository__Group_2__341768 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2_3__0_in_rule__ProtocolsRepository__Group_2__3__Impl41795 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2__4__Impl_in_rule__ProtocolsRepository__Group_2__441826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolsRepository__Group_2__4__Impl41854 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2_3__0__Impl_in_rule__ProtocolsRepository__Group_2_3__041895 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000200L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2_3__1_in_rule__ProtocolsRepository__Group_2_3__041898 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ProtocolsRepository__Group_2_3__0__Impl41926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_2_3__1__Impl_in_rule__ProtocolsRepository__Group_2_3__141957 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__StacksAssignment_2_3_1_in_rule__ProtocolsRepository__Group_2_3__1__Impl41984 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_6__0__Impl_in_rule__ProtocolsRepository__Group_6__042018 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L,0x0000000100000000L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_6__1_in_rule__ProtocolsRepository__Group_6__042021 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ProtocolsRepository__Group_6__0__Impl42049 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__Group_6__1__Impl_in_rule__ProtocolsRepository__Group_6__142080 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolsRepository__ProtocolsAssignment_6_1_in_rule__ProtocolsRepository__Group_6__1__Impl42107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__0__Impl_in_rule__RoutesRepository__Group__042141 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000040L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__1_in_rule__RoutesRepository__Group__042144 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__1__Impl_in_rule__RoutesRepository__Group__142202 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__2_in_rule__RoutesRepository__Group__142205 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_134_in_rule__RoutesRepository__Group__1__Impl42233 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__2__Impl_in_rule__RoutesRepository__Group__242264 = new BitSet(new long[]{0x2000000020000000L,0x0000000000000000L,0x0000000000000180L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__3_in_rule__RoutesRepository__Group__242267 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RoutesRepository__Group__2__Impl42295 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__3__Impl_in_rule__RoutesRepository__Group__342326 = new BitSet(new long[]{0x2000000020000000L,0x0000000000000000L,0x0000000000000180L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__4_in_rule__RoutesRepository__Group__342329 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__0_in_rule__RoutesRepository__Group__3__Impl42356 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__4__Impl_in_rule__RoutesRepository__Group__442387 = new BitSet(new long[]{0x2000000020000000L,0x0000000000000000L,0x0000000000000180L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__5_in_rule__RoutesRepository__Group__442390 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__0_in_rule__RoutesRepository__Group__4__Impl42417 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__5__Impl_in_rule__RoutesRepository__Group__542448 = new BitSet(new long[]{0x2000000020000000L,0x0000000000000000L,0x0000000000000180L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__6_in_rule__RoutesRepository__Group__542451 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__0_in_rule__RoutesRepository__Group__5__Impl42478 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group__6__Impl_in_rule__RoutesRepository__Group__642509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RoutesRepository__Group__6__Impl42537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__0__Impl_in_rule__RoutesRepository__Group_3__042582 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__1_in_rule__RoutesRepository__Group_3__042585 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_61_in_rule__RoutesRepository__Group_3__0__Impl42613 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__1__Impl_in_rule__RoutesRepository__Group_3__142644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__2_in_rule__RoutesRepository__Group_3__142647 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RoutesRepository__Group_3__1__Impl42675 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__2__Impl_in_rule__RoutesRepository__Group_3__242706 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__3_in_rule__RoutesRepository__Group_3__242709 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__RoutesAssignment_3_2_in_rule__RoutesRepository__Group_3__2__Impl42736 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__3__Impl_in_rule__RoutesRepository__Group_3__342766 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__4_in_rule__RoutesRepository__Group_3__342769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3_3__0_in_rule__RoutesRepository__Group_3__3__Impl42796 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3__4__Impl_in_rule__RoutesRepository__Group_3__442827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RoutesRepository__Group_3__4__Impl42855 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3_3__0__Impl_in_rule__RoutesRepository__Group_3_3__042896 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3_3__1_in_rule__RoutesRepository__Group_3_3__042899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__RoutesRepository__Group_3_3__0__Impl42927 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_3_3__1__Impl_in_rule__RoutesRepository__Group_3_3__142958 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__RoutesAssignment_3_3_1_in_rule__RoutesRepository__Group_3_3__1__Impl42985 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__0__Impl_in_rule__RoutesRepository__Group_4__043019 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__1_in_rule__RoutesRepository__Group_4__043022 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_135_in_rule__RoutesRepository__Group_4__0__Impl43050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__1__Impl_in_rule__RoutesRepository__Group_4__143081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__2_in_rule__RoutesRepository__Group_4__143084 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RoutesRepository__Group_4__1__Impl43112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__2__Impl_in_rule__RoutesRepository__Group_4__243143 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__3_in_rule__RoutesRepository__Group_4__243146 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__FlowRoutesAssignment_4_2_in_rule__RoutesRepository__Group_4__2__Impl43173 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__3__Impl_in_rule__RoutesRepository__Group_4__343203 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__4_in_rule__RoutesRepository__Group_4__343206 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4_3__0_in_rule__RoutesRepository__Group_4__3__Impl43233 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4__4__Impl_in_rule__RoutesRepository__Group_4__443264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RoutesRepository__Group_4__4__Impl43292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4_3__0__Impl_in_rule__RoutesRepository__Group_4_3__043333 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000100000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4_3__1_in_rule__RoutesRepository__Group_4_3__043336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__RoutesRepository__Group_4_3__0__Impl43364 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_4_3__1__Impl_in_rule__RoutesRepository__Group_4_3__143395 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__FlowRoutesAssignment_4_3_1_in_rule__RoutesRepository__Group_4_3__1__Impl43422 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__0__Impl_in_rule__RoutesRepository__Group_5__043456 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__1_in_rule__RoutesRepository__Group_5__043459 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_136_in_rule__RoutesRepository__Group_5__0__Impl43487 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__1__Impl_in_rule__RoutesRepository__Group_5__143518 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200200000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__2_in_rule__RoutesRepository__Group_5__143521 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__RoutesRepository__Group_5__1__Impl43549 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__2__Impl_in_rule__RoutesRepository__Group_5__243580 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__3_in_rule__RoutesRepository__Group_5__243583 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__DirectionsAssignment_5_2_in_rule__RoutesRepository__Group_5__2__Impl43610 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__3__Impl_in_rule__RoutesRepository__Group_5__343640 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__4_in_rule__RoutesRepository__Group_5__343643 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5_3__0_in_rule__RoutesRepository__Group_5__3__Impl43670 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5__4__Impl_in_rule__RoutesRepository__Group_5__443701 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__RoutesRepository__Group_5__4__Impl43729 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5_3__0__Impl_in_rule__RoutesRepository__Group_5_3__043770 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200200000L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5_3__1_in_rule__RoutesRepository__Group_5_3__043773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__RoutesRepository__Group_5_3__0__Impl43801 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__Group_5_3__1__Impl_in_rule__RoutesRepository__Group_5_3__143832 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__RoutesRepository__DirectionsAssignment_5_3_1_in_rule__RoutesRepository__Group_5_3__1__Impl43859 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__0__Impl_in_rule__ProtocolStack__Group__043893 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__1_in_rule__ProtocolStack__Group__043896 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_137_in_rule__ProtocolStack__Group__0__Impl43924 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__1__Impl_in_rule__ProtocolStack__Group__143955 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__2_in_rule__ProtocolStack__Group__143958 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__NameAssignment_1_in_rule__ProtocolStack__Group__1__Impl43985 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__2__Impl_in_rule__ProtocolStack__Group__244015 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000400L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__3_in_rule__ProtocolStack__Group__244018 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolStack__Group__2__Impl44046 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__3__Impl_in_rule__ProtocolStack__Group__344077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000000400L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__4_in_rule__ProtocolStack__Group__344080 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__0_in_rule__ProtocolStack__Group__3__Impl44107 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__4__Impl_in_rule__ProtocolStack__Group__444138 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__5_in_rule__ProtocolStack__Group__444141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_138_in_rule__ProtocolStack__Group__4__Impl44169 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__5__Impl_in_rule__ProtocolStack__Group__544200 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__6_in_rule__ProtocolStack__Group__544203 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolStack__Group__5__Impl44231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__6__Impl_in_rule__ProtocolStack__Group__644262 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__7_in_rule__ProtocolStack__Group__644265 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__LayersAssignment_6_in_rule__ProtocolStack__Group__6__Impl44292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__7__Impl_in_rule__ProtocolStack__Group__744322 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__8_in_rule__ProtocolStack__Group__744325 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_7__0_in_rule__ProtocolStack__Group__7__Impl44352 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__8__Impl_in_rule__ProtocolStack__Group__844383 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__9_in_rule__ProtocolStack__Group__844386 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolStack__Group__8__Impl44414 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group__9__Impl_in_rule__ProtocolStack__Group__944445 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolStack__Group__9__Impl44473 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__0__Impl_in_rule__ProtocolStack__Group_3__044524 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__1_in_rule__ProtocolStack__Group_3__044527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__ProtocolStack__Group_3__0__Impl44555 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__1__Impl_in_rule__ProtocolStack__Group_3__144586 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__2_in_rule__ProtocolStack__Group_3__144589 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolStack__Group_3__1__Impl44617 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__2__Impl_in_rule__ProtocolStack__Group_3__244648 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__3_in_rule__ProtocolStack__Group_3__244651 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__AlternativeNamesAssignment_3_2_in_rule__ProtocolStack__Group_3__2__Impl44678 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__3__Impl_in_rule__ProtocolStack__Group_3__344708 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__4_in_rule__ProtocolStack__Group_3__344711 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+    private static class FollowSets002 {
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3_3__0_in_rule__ProtocolStack__Group_3__3__Impl44738 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3__4__Impl_in_rule__ProtocolStack__Group_3__444769 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolStack__Group_3__4__Impl44797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3_3__0__Impl_in_rule__ProtocolStack__Group_3_3__044838 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3_3__1_in_rule__ProtocolStack__Group_3_3__044841 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ProtocolStack__Group_3_3__0__Impl44869 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_3_3__1__Impl_in_rule__ProtocolStack__Group_3_3__144900 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__AlternativeNamesAssignment_3_3_1_in_rule__ProtocolStack__Group_3_3__1__Impl44927 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_7__0__Impl_in_rule__ProtocolStack__Group_7__044961 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000800L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_7__1_in_rule__ProtocolStack__Group_7__044964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ProtocolStack__Group_7__0__Impl44992 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__Group_7__1__Impl_in_rule__ProtocolStack__Group_7__145023 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolStack__LayersAssignment_7_1_in_rule__ProtocolStack__Group_7__1__Impl45050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__0__Impl_in_rule__ProtocolLayer__Group__045084 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__1_in_rule__ProtocolLayer__Group__045087 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_139_in_rule__ProtocolLayer__Group__0__Impl45115 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__1__Impl_in_rule__ProtocolLayer__Group__145146 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__2_in_rule__ProtocolLayer__Group__145149 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__NameAssignment_1_in_rule__ProtocolLayer__Group__1__Impl45176 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__2__Impl_in_rule__ProtocolLayer__Group__245206 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000001000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__3_in_rule__ProtocolLayer__Group__245209 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolLayer__Group__2__Impl45237 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__3__Impl_in_rule__ProtocolLayer__Group__345268 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000001000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__4_in_rule__ProtocolLayer__Group__345271 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__0_in_rule__ProtocolLayer__Group__3__Impl45298 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__4__Impl_in_rule__ProtocolLayer__Group__445329 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__5_in_rule__ProtocolLayer__Group__445332 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_140_in_rule__ProtocolLayer__Group__4__Impl45360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__5__Impl_in_rule__ProtocolLayer__Group__545391 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000006000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__6_in_rule__ProtocolLayer__Group__545394 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__ProtocolAssignment_5_in_rule__ProtocolLayer__Group__5__Impl45421 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__6__Impl_in_rule__ProtocolLayer__Group__645451 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000006000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__7_in_rule__ProtocolLayer__Group__645454 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_6__0_in_rule__ProtocolLayer__Group__6__Impl45481 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__7__Impl_in_rule__ProtocolLayer__Group__745512 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000006000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__8_in_rule__ProtocolLayer__Group__745515 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_7__0_in_rule__ProtocolLayer__Group__7__Impl45542 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group__8__Impl_in_rule__ProtocolLayer__Group__845573 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolLayer__Group__8__Impl45601 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__0__Impl_in_rule__ProtocolLayer__Group_3__045650 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__1_in_rule__ProtocolLayer__Group_3__045653 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__ProtocolLayer__Group_3__0__Impl45681 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__1__Impl_in_rule__ProtocolLayer__Group_3__145712 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__2_in_rule__ProtocolLayer__Group_3__145715 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__ProtocolLayer__Group_3__1__Impl45743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__2__Impl_in_rule__ProtocolLayer__Group_3__245774 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__3_in_rule__ProtocolLayer__Group_3__245777 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__AlternativeNamesAssignment_3_2_in_rule__ProtocolLayer__Group_3__2__Impl45804 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__3__Impl_in_rule__ProtocolLayer__Group_3__345834 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__4_in_rule__ProtocolLayer__Group_3__345837 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3_3__0_in_rule__ProtocolLayer__Group_3__3__Impl45864 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3__4__Impl_in_rule__ProtocolLayer__Group_3__445895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__ProtocolLayer__Group_3__4__Impl45923 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3_3__0__Impl_in_rule__ProtocolLayer__Group_3_3__045964 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3_3__1_in_rule__ProtocolLayer__Group_3_3__045967 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__ProtocolLayer__Group_3_3__0__Impl45995 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_3_3__1__Impl_in_rule__ProtocolLayer__Group_3_3__146026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__AlternativeNamesAssignment_3_3_1_in_rule__ProtocolLayer__Group_3_3__1__Impl46053 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_6__0__Impl_in_rule__ProtocolLayer__Group_6__046087 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_6__1_in_rule__ProtocolLayer__Group_6__046090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_141_in_rule__ProtocolLayer__Group_6__0__Impl46118 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_6__1__Impl_in_rule__ProtocolLayer__Group_6__146149 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__IsCarriedByAssignment_6_1_in_rule__ProtocolLayer__Group_6__1__Impl46176 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_7__0__Impl_in_rule__ProtocolLayer__Group_7__046210 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_7__1_in_rule__ProtocolLayer__Group_7__046213 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_142_in_rule__ProtocolLayer__Group_7__0__Impl46241 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__Group_7__1__Impl_in_rule__ProtocolLayer__Group_7__146272 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__ProtocolLayer__CarriesAssignment_7_1_in_rule__ProtocolLayer__Group_7__1__Impl46299 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__0__Impl_in_rule__Route__Group__046333 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__Route__Group__1_in_rule__Route__Group__046336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_143_in_rule__Route__Group__0__Impl46364 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__1__Impl_in_rule__Route__Group__146395 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Route__Group__2_in_rule__Route__Group__146398 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__IdAssignment_1_in_rule__Route__Group__1__Impl46425 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__2__Impl_in_rule__Route__Group__246455 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__3_in_rule__Route__Group__246458 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Route__Group__2__Impl46486 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__3__Impl_in_rule__Route__Group__346517 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Route__Group__4_in_rule__Route__Group__346520 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__Route__Group__3__Impl46548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__4__Impl_in_rule__Route__Group__446579 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000050000L});
+        public static final BitSet FOLLOW_rule__Route__Group__5_in_rule__Route__Group__446582 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__NameAssignment_4_in_rule__Route__Group__4__Impl46609 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__5__Impl_in_rule__Route__Group__546639 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000050000L});
+        public static final BitSet FOLLOW_rule__Route__Group__6_in_rule__Route__Group__546642 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__0_in_rule__Route__Group__5__Impl46669 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__6__Impl_in_rule__Route__Group__646700 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000000050000L});
+        public static final BitSet FOLLOW_rule__Route__Group__7_in_rule__Route__Group__646703 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_6__0_in_rule__Route__Group__6__Impl46730 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__7__Impl_in_rule__Route__Group__746761 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Route__Group__8_in_rule__Route__Group__746764 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_144_in_rule__Route__Group__7__Impl46792 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__8__Impl_in_rule__Route__Group__846823 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__Route__Group__9_in_rule__Route__Group__846826 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__StartAssignment_8_in_rule__Route__Group__8__Impl46853 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__9__Impl_in_rule__Route__Group__946883 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Route__Group__10_in_rule__Route__Group__946886 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_145_in_rule__Route__Group__9__Impl46914 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__10__Impl_in_rule__Route__Group__1046945 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000080000L});
+        public static final BitSet FOLLOW_rule__Route__Group__11_in_rule__Route__Group__1046948 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__EndAssignment_10_in_rule__Route__Group__10__Impl46975 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__11__Impl_in_rule__Route__Group__1147005 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000080000L});
+        public static final BitSet FOLLOW_rule__Route__Group__12_in_rule__Route__Group__1147008 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_11__0_in_rule__Route__Group__11__Impl47035 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group__12__Impl_in_rule__Route__Group__1247066 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Route__Group__12__Impl47094 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__0__Impl_in_rule__Route__Group_5__047151 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__1_in_rule__Route__Group_5__047154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__Route__Group_5__0__Impl47182 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__1__Impl_in_rule__Route__Group_5__147213 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__2_in_rule__Route__Group_5__147216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Route__Group_5__1__Impl47244 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__2__Impl_in_rule__Route__Group_5__247275 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__3_in_rule__Route__Group_5__247278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__AlternativeNamesAssignment_5_2_in_rule__Route__Group_5__2__Impl47305 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__3__Impl_in_rule__Route__Group_5__347335 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__4_in_rule__Route__Group_5__347338 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5_3__0_in_rule__Route__Group_5__3__Impl47365 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5__4__Impl_in_rule__Route__Group_5__447396 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Route__Group_5__4__Impl47424 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5_3__0__Impl_in_rule__Route__Group_5_3__047465 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Route__Group_5_3__1_in_rule__Route__Group_5_3__047468 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__Route__Group_5_3__0__Impl47496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_5_3__1__Impl_in_rule__Route__Group_5_3__147527 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__AlternativeNamesAssignment_5_3_1_in_rule__Route__Group_5_3__1__Impl47554 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_6__0__Impl_in_rule__Route__Group_6__047588 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Route__Group_6__1_in_rule__Route__Group_6__047591 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_146_in_rule__Route__Group_6__0__Impl47619 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_6__1__Impl_in_rule__Route__Group_6__147650 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__NumHopsAssignment_6_1_in_rule__Route__Group_6__1__Impl47677 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_11__0__Impl_in_rule__Route__Group_11__047711 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__Route__Group_11__1_in_rule__Route__Group_11__047714 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_147_in_rule__Route__Group_11__0__Impl47742 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__Group_11__1__Impl_in_rule__Route__Group_11__147773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Route__HopsAssignment_11_1_in_rule__Route__Group_11__1__Impl47800 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__0__Impl_in_rule__FlowRoute__Group__047834 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__1_in_rule__FlowRoute__Group__047837 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_148_in_rule__FlowRoute__Group__0__Impl47865 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__1__Impl_in_rule__FlowRoute__Group__147896 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__2_in_rule__FlowRoute__Group__147899 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__IdAssignment_1_in_rule__FlowRoute__Group__1__Impl47926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__2__Impl_in_rule__FlowRoute__Group__247956 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__3_in_rule__FlowRoute__Group__247959 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__FlowRoute__Group__2__Impl47987 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__3__Impl_in_rule__FlowRoute__Group__348018 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__4_in_rule__FlowRoute__Group__348021 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__FlowRoute__Group__3__Impl48049 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__4__Impl_in_rule__FlowRoute__Group__448080 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000008L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__5_in_rule__FlowRoute__Group__448083 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__NameAssignment_4_in_rule__FlowRoute__Group__4__Impl48110 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__5__Impl_in_rule__FlowRoute__Group__548140 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000008L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__6_in_rule__FlowRoute__Group__548143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__0_in_rule__FlowRoute__Group__5__Impl48170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__6__Impl_in_rule__FlowRoute__Group__648201 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000008L,0x0000000000040000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__7_in_rule__FlowRoute__Group__648204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_6__0_in_rule__FlowRoute__Group__6__Impl48231 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__7__Impl_in_rule__FlowRoute__Group__748262 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__8_in_rule__FlowRoute__Group__748265 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_117_in_rule__FlowRoute__Group__7__Impl48293 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__8__Impl_in_rule__FlowRoute__Group__848324 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000010000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__9_in_rule__FlowRoute__Group__848327 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__FlowAssignment_8_in_rule__FlowRoute__Group__8__Impl48354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__9__Impl_in_rule__FlowRoute__Group__948384 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__10_in_rule__FlowRoute__Group__948387 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_144_in_rule__FlowRoute__Group__9__Impl48415 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__10__Impl_in_rule__FlowRoute__Group__1048446 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__11_in_rule__FlowRoute__Group__1048449 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__StartAssignment_10_in_rule__FlowRoute__Group__10__Impl48476 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__11__Impl_in_rule__FlowRoute__Group__1148506 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__12_in_rule__FlowRoute__Group__1148509 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_145_in_rule__FlowRoute__Group__11__Impl48537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__12__Impl_in_rule__FlowRoute__Group__1248568 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000080000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__13_in_rule__FlowRoute__Group__1248571 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__EndAssignment_12_in_rule__FlowRoute__Group__12__Impl48598 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__13__Impl_in_rule__FlowRoute__Group__1348628 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000000080000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__14_in_rule__FlowRoute__Group__1348631 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_13__0_in_rule__FlowRoute__Group__13__Impl48658 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group__14__Impl_in_rule__FlowRoute__Group__1448689 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__FlowRoute__Group__14__Impl48717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__0__Impl_in_rule__FlowRoute__Group_5__048778 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__1_in_rule__FlowRoute__Group_5__048781 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__FlowRoute__Group_5__0__Impl48809 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__1__Impl_in_rule__FlowRoute__Group_5__148840 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__2_in_rule__FlowRoute__Group_5__148843 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__FlowRoute__Group_5__1__Impl48871 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__2__Impl_in_rule__FlowRoute__Group_5__248902 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__3_in_rule__FlowRoute__Group_5__248905 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__AlternativeNamesAssignment_5_2_in_rule__FlowRoute__Group_5__2__Impl48932 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__3__Impl_in_rule__FlowRoute__Group_5__348962 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__4_in_rule__FlowRoute__Group_5__348965 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5_3__0_in_rule__FlowRoute__Group_5__3__Impl48992 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5__4__Impl_in_rule__FlowRoute__Group_5__449023 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__FlowRoute__Group_5__4__Impl49051 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5_3__0__Impl_in_rule__FlowRoute__Group_5_3__049092 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5_3__1_in_rule__FlowRoute__Group_5_3__049095 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__FlowRoute__Group_5_3__0__Impl49123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_5_3__1__Impl_in_rule__FlowRoute__Group_5_3__149154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__AlternativeNamesAssignment_5_3_1_in_rule__FlowRoute__Group_5_3__1__Impl49181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_6__0__Impl_in_rule__FlowRoute__Group_6__049215 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_6__1_in_rule__FlowRoute__Group_6__049218 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_146_in_rule__FlowRoute__Group_6__0__Impl49246 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_6__1__Impl_in_rule__FlowRoute__Group_6__149277 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__NumHopsAssignment_6_1_in_rule__FlowRoute__Group_6__1__Impl49304 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_13__0__Impl_in_rule__FlowRoute__Group_13__049338 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_13__1_in_rule__FlowRoute__Group_13__049341 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_147_in_rule__FlowRoute__Group_13__0__Impl49369 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__Group_13__1__Impl_in_rule__FlowRoute__Group_13__149400 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__FlowRoute__HopsAssignment_13_1_in_rule__FlowRoute__Group_13__1__Impl49427 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__0__Impl_in_rule__Direction__Group__049461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000200200000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__1_in_rule__Direction__Group__049464 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__IsDefaultAssignment_0_in_rule__Direction__Group__0__Impl49491 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__1__Impl_in_rule__Direction__Group__149522 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__Direction__Group__2_in_rule__Direction__Group__149525 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_149_in_rule__Direction__Group__1__Impl49553 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__2__Impl_in_rule__Direction__Group__249584 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__3_in_rule__Direction__Group__249587 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__IdAssignment_2_in_rule__Direction__Group__2__Impl49614 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__3__Impl_in_rule__Direction__Group__349644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__4_in_rule__Direction__Group__349647 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Direction__Group__3__Impl49675 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__4__Impl_in_rule__Direction__Group__449706 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group__5_in_rule__Direction__Group__449709 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__Direction__Group__4__Impl49737 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__5__Impl_in_rule__Direction__Group__549768 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000001400000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__6_in_rule__Direction__Group__549771 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__NameAssignment_5_in_rule__Direction__Group__5__Impl49798 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__6__Impl_in_rule__Direction__Group__649828 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000001400000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__7_in_rule__Direction__Group__649831 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__0_in_rule__Direction__Group__6__Impl49858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__7__Impl_in_rule__Direction__Group__749889 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000001400000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__8_in_rule__Direction__Group__749892 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_7__0_in_rule__Direction__Group__7__Impl49919 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__8__Impl_in_rule__Direction__Group__849950 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group__9_in_rule__Direction__Group__849953 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_150_in_rule__Direction__Group__8__Impl49981 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__9__Impl_in_rule__Direction__Group__950012 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__10_in_rule__Direction__Group__950015 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__OnNodeAssignment_9_in_rule__Direction__Group__9__Impl50042 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__10__Impl_in_rule__Direction__Group__1050072 = new BitSet(new long[]{0x0000000000000000L,0x0020000000000000L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__11_in_rule__Direction__Group__1050075 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_10__0_in_rule__Direction__Group__10__Impl50102 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__11__Impl_in_rule__Direction__Group__1150133 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group__12_in_rule__Direction__Group__1150136 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_151_in_rule__Direction__Group__11__Impl50164 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__12__Impl_in_rule__Direction__Group__1250195 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__Direction__Group__13_in_rule__Direction__Group__1250198 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__ViaAssignment_12_in_rule__Direction__Group__12__Impl50225 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group__13__Impl_in_rule__Direction__Group__1350255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Direction__Group__13__Impl50283 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__0__Impl_in_rule__Direction__Group_6__050342 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__1_in_rule__Direction__Group_6__050345 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__Direction__Group_6__0__Impl50373 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__1__Impl_in_rule__Direction__Group_6__150404 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__2_in_rule__Direction__Group_6__150407 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Direction__Group_6__1__Impl50435 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__2__Impl_in_rule__Direction__Group_6__250466 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__3_in_rule__Direction__Group_6__250469 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__AlternativeNamesAssignment_6_2_in_rule__Direction__Group_6__2__Impl50496 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__3__Impl_in_rule__Direction__Group_6__350526 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__4_in_rule__Direction__Group_6__350529 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6_3__0_in_rule__Direction__Group_6__3__Impl50556 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6__4__Impl_in_rule__Direction__Group_6__450587 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Direction__Group_6__4__Impl50615 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6_3__0__Impl_in_rule__Direction__Group_6_3__050656 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6_3__1_in_rule__Direction__Group_6_3__050659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__Direction__Group_6_3__0__Impl50687 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_6_3__1__Impl_in_rule__Direction__Group_6_3__150718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__AlternativeNamesAssignment_6_3_1_in_rule__Direction__Group_6_3__1__Impl50745 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_7__0__Impl_in_rule__Direction__Group_7__050779 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Direction__Group_7__1_in_rule__Direction__Group_7__050782 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_152_in_rule__Direction__Group_7__0__Impl50810 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_7__1__Impl_in_rule__Direction__Group_7__150841 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__DistanceAssignment_7_1_in_rule__Direction__Group_7__1__Impl50868 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_10__0__Impl_in_rule__Direction__Group_10__050902 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Direction__Group_10__1_in_rule__Direction__Group_10__050905 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_117_in_rule__Direction__Group_10__0__Impl50933 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__Group_10__1__Impl_in_rule__Direction__Group_10__150964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Direction__FlowAssignment_10_1_in_rule__Direction__Group_10__1__Impl50991 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__0__Impl_in_rule__Hop__Group__051025 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__Hop__Group__1_in_rule__Hop__Group__051028 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_153_in_rule__Hop__Group__0__Impl51056 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__1__Impl_in_rule__Hop__Group__151087 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000004000000L});
+        public static final BitSet FOLLOW_rule__Hop__Group__2_in_rule__Hop__Group__151090 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__Hop__Group__1__Impl51118 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__2__Impl_in_rule__Hop__Group__251149 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__Hop__Group__3_in_rule__Hop__Group__251152 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_154_in_rule__Hop__Group__2__Impl51180 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__3__Impl_in_rule__Hop__Group__351211 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000008000000L});
+        public static final BitSet FOLLOW_rule__Hop__Group__4_in_rule__Hop__Group__351214 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__InterfacerefAssignment_3_in_rule__Hop__Group__3__Impl51241 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__4__Impl_in_rule__Hop__Group__451271 = new BitSet(new long[]{0x0000000020000000L,0x0000000000000000L,0x0000000008000000L});
+        public static final BitSet FOLLOW_rule__Hop__Group__5_in_rule__Hop__Group__451274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group_4__0_in_rule__Hop__Group__4__Impl51301 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group__5__Impl_in_rule__Hop__Group__551332 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__Hop__Group__5__Impl51360 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group_4__0__Impl_in_rule__Hop__Group_4__051403 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000002000000L});
+        public static final BitSet FOLLOW_rule__Hop__Group_4__1_in_rule__Hop__Group_4__051406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_155_in_rule__Hop__Group_4__0__Impl51434 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__Group_4__1__Impl_in_rule__Hop__Group_4__151465 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__Hop__NextHopAssignment_4_1_in_rule__Hop__Group_4__1__Impl51492 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EIntegerObject__Group__0__Impl_in_rule__EIntegerObject__Group__051526 = new BitSet(new long[]{0x0000000000000040L,0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__EIntegerObject__Group__1_in_rule__EIntegerObject__Group__051529 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_87_in_rule__EIntegerObject__Group__0__Impl51558 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__EIntegerObject__Group__1__Impl_in_rule__EIntegerObject__Group__151591 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_INT_in_rule__EIntegerObject__Group__1__Impl51618 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__0__Impl_in_rule__PhysicalNetworkInterface__Group__051651 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__1_in_rule__PhysicalNetworkInterface__Group__051654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_156_in_rule__PhysicalNetworkInterface__Group__0__Impl51682 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__1__Impl_in_rule__PhysicalNetworkInterface__Group__151713 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__2_in_rule__PhysicalNetworkInterface__Group__151716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__IdAssignment_1_in_rule__PhysicalNetworkInterface__Group__1__Impl51743 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__2__Impl_in_rule__PhysicalNetworkInterface__Group__251773 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__3_in_rule__PhysicalNetworkInterface__Group__251776 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNetworkInterface__Group__2__Impl51804 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__3__Impl_in_rule__PhysicalNetworkInterface__Group__351835 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__4_in_rule__PhysicalNetworkInterface__Group__351838 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__PhysicalNetworkInterface__Group__3__Impl51866 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__4__Impl_in_rule__PhysicalNetworkInterface__Group__451897 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__5_in_rule__PhysicalNetworkInterface__Group__451900 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__NameAssignment_4_in_rule__PhysicalNetworkInterface__Group__4__Impl51927 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__5__Impl_in_rule__PhysicalNetworkInterface__Group__551957 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__6_in_rule__PhysicalNetworkInterface__Group__551960 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__0_in_rule__PhysicalNetworkInterface__Group__5__Impl51987 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__6__Impl_in_rule__PhysicalNetworkInterface__Group__652018 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__7_in_rule__PhysicalNetworkInterface__Group__652021 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_157_in_rule__PhysicalNetworkInterface__Group__6__Impl52049 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__7__Impl_in_rule__PhysicalNetworkInterface__Group__752080 = new BitSet(new long[]{0x0000000000000000L,0x0400040000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__8_in_rule__PhysicalNetworkInterface__Group__752083 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_7_in_rule__PhysicalNetworkInterface__Group__7__Impl52110 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__8__Impl_in_rule__PhysicalNetworkInterface__Group__852140 = new BitSet(new long[]{0x0000000000000000L,0x0400040000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__9_in_rule__PhysicalNetworkInterface__Group__852143 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__0_in_rule__PhysicalNetworkInterface__Group__8__Impl52170 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__9__Impl_in_rule__PhysicalNetworkInterface__Group__952201 = new BitSet(new long[]{0x0000002000000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__10_in_rule__PhysicalNetworkInterface__Group__952204 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__PhysicalNetworkInterface__Group__9__Impl52232 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__10__Impl_in_rule__PhysicalNetworkInterface__Group__1052263 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__11_in_rule__PhysicalNetworkInterface__Group__1052266 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__PerformanceAssignment_10_in_rule__PhysicalNetworkInterface__Group__10__Impl52293 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group__11__Impl_in_rule__PhysicalNetworkInterface__Group__1152323 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNetworkInterface__Group__11__Impl52351 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__0__Impl_in_rule__PhysicalNetworkInterface__Group_5__052406 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__1_in_rule__PhysicalNetworkInterface__Group_5__052409 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__PhysicalNetworkInterface__Group_5__0__Impl52437 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__1__Impl_in_rule__PhysicalNetworkInterface__Group_5__152468 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__2_in_rule__PhysicalNetworkInterface__Group_5__152471 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNetworkInterface__Group_5__1__Impl52499 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__2__Impl_in_rule__PhysicalNetworkInterface__Group_5__252530 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__3_in_rule__PhysicalNetworkInterface__Group_5__252533 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_2_in_rule__PhysicalNetworkInterface__Group_5__2__Impl52560 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__3__Impl_in_rule__PhysicalNetworkInterface__Group_5__352590 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__4_in_rule__PhysicalNetworkInterface__Group_5__352593 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__0_in_rule__PhysicalNetworkInterface__Group_5__3__Impl52620 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5__4__Impl_in_rule__PhysicalNetworkInterface__Group_5__452651 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNetworkInterface__Group_5__4__Impl52679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__0__Impl_in_rule__PhysicalNetworkInterface__Group_5_3__052720 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__1_in_rule__PhysicalNetworkInterface__Group_5_3__052723 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNetworkInterface__Group_5_3__0__Impl52751 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_5_3__1__Impl_in_rule__PhysicalNetworkInterface__Group_5_3__152782 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_1_in_rule__PhysicalNetworkInterface__Group_5_3__1__Impl52809 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__0__Impl_in_rule__PhysicalNetworkInterface__Group_8__052843 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__1_in_rule__PhysicalNetworkInterface__Group_8__052846 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_106_in_rule__PhysicalNetworkInterface__Group_8__0__Impl52874 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__1__Impl_in_rule__PhysicalNetworkInterface__Group_8__152905 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__2_in_rule__PhysicalNetworkInterface__Group_8__152908 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__PhysicalNetworkInterface__Group_8__1__Impl52936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__2__Impl_in_rule__PhysicalNetworkInterface__Group_8__252967 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__3_in_rule__PhysicalNetworkInterface__Group_8__252970 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__AddressesAssignment_8_2_in_rule__PhysicalNetworkInterface__Group_8__2__Impl52997 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__3__Impl_in_rule__PhysicalNetworkInterface__Group_8__353027 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__4_in_rule__PhysicalNetworkInterface__Group_8__353030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__0_in_rule__PhysicalNetworkInterface__Group_8__3__Impl53057 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8__4__Impl_in_rule__PhysicalNetworkInterface__Group_8__453088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__PhysicalNetworkInterface__Group_8__4__Impl53116 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__0__Impl_in_rule__PhysicalNetworkInterface__Group_8_3__053157 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__1_in_rule__PhysicalNetworkInterface__Group_8_3__053160 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__PhysicalNetworkInterface__Group_8_3__0__Impl53188 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__Group_8_3__1__Impl_in_rule__PhysicalNetworkInterface__Group_8_3__153219 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__PhysicalNetworkInterface__AddressesAssignment_8_3_1_in_rule__PhysicalNetworkInterface__Group_8_3__1__Impl53246 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__0__Impl_in_rule__VirtualNetworkInterface__Group__053280 = new BitSet(new long[]{0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__1_in_rule__VirtualNetworkInterface__Group__053283 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_158_in_rule__VirtualNetworkInterface__Group__0__Impl53311 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__1__Impl_in_rule__VirtualNetworkInterface__Group__153342 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__2_in_rule__VirtualNetworkInterface__Group__153345 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__IdAssignment_1_in_rule__VirtualNetworkInterface__Group__1__Impl53372 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__2__Impl_in_rule__VirtualNetworkInterface__Group__253402 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__3_in_rule__VirtualNetworkInterface__Group__253405 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNetworkInterface__Group__2__Impl53433 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__3__Impl_in_rule__VirtualNetworkInterface__Group__353464 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__4_in_rule__VirtualNetworkInterface__Group__353467 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_65_in_rule__VirtualNetworkInterface__Group__3__Impl53495 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__4__Impl_in_rule__VirtualNetworkInterface__Group__453526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__5_in_rule__VirtualNetworkInterface__Group__453529 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__NameAssignment_4_in_rule__VirtualNetworkInterface__Group__4__Impl53556 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__5__Impl_in_rule__VirtualNetworkInterface__Group__553586 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L,0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__6_in_rule__VirtualNetworkInterface__Group__553589 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__0_in_rule__VirtualNetworkInterface__Group__5__Impl53616 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__6__Impl_in_rule__VirtualNetworkInterface__Group__653647 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__7_in_rule__VirtualNetworkInterface__Group__653650 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_157_in_rule__VirtualNetworkInterface__Group__6__Impl53678 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__7__Impl_in_rule__VirtualNetworkInterface__Group__753709 = new BitSet(new long[]{0x0000000000000000L,0x0400040000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__8_in_rule__VirtualNetworkInterface__Group__753712 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__UsedProtocolStackAssignment_7_in_rule__VirtualNetworkInterface__Group__7__Impl53739 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__8__Impl_in_rule__VirtualNetworkInterface__Group__853769 = new BitSet(new long[]{0x0000000000000000L,0x0400040000000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__9_in_rule__VirtualNetworkInterface__Group__853772 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__0_in_rule__VirtualNetworkInterface__Group__8__Impl53799 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__9__Impl_in_rule__VirtualNetworkInterface__Group__953830 = new BitSet(new long[]{0x0008066100000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__10_in_rule__VirtualNetworkInterface__Group__953833 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_122_in_rule__VirtualNetworkInterface__Group__9__Impl53861 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__10__Impl_in_rule__VirtualNetworkInterface__Group__1053892 = new BitSet(new long[]{0x0000000020000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__11_in_rule__VirtualNetworkInterface__Group__1053895 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__PerformanceAssignment_10_in_rule__VirtualNetworkInterface__Group__10__Impl53922 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group__11__Impl_in_rule__VirtualNetworkInterface__Group__1153952 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNetworkInterface__Group__11__Impl53980 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__0__Impl_in_rule__VirtualNetworkInterface__Group_5__054035 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__1_in_rule__VirtualNetworkInterface__Group_5__054038 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_67_in_rule__VirtualNetworkInterface__Group_5__0__Impl54066 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__1__Impl_in_rule__VirtualNetworkInterface__Group_5__154097 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__2_in_rule__VirtualNetworkInterface__Group_5__154100 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNetworkInterface__Group_5__1__Impl54128 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__2__Impl_in_rule__VirtualNetworkInterface__Group_5__254159 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__3_in_rule__VirtualNetworkInterface__Group_5__254162 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_2_in_rule__VirtualNetworkInterface__Group_5__2__Impl54189 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__3__Impl_in_rule__VirtualNetworkInterface__Group_5__354219 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__4_in_rule__VirtualNetworkInterface__Group_5__354222 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5_3__0_in_rule__VirtualNetworkInterface__Group_5__3__Impl54249 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5__4__Impl_in_rule__VirtualNetworkInterface__Group_5__454280 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNetworkInterface__Group_5__4__Impl54308 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5_3__0__Impl_in_rule__VirtualNetworkInterface__Group_5_3__054349 = new BitSet(new long[]{0x0000000000000030L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5_3__1_in_rule__VirtualNetworkInterface__Group_5_3__054352 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualNetworkInterface__Group_5_3__0__Impl54380 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_5_3__1__Impl_in_rule__VirtualNetworkInterface__Group_5_3__154411 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_1_in_rule__VirtualNetworkInterface__Group_5_3__1__Impl54438 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__0__Impl_in_rule__VirtualNetworkInterface__Group_8__054472 = new BitSet(new long[]{0x0000000000800000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__1_in_rule__VirtualNetworkInterface__Group_8__054475 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_106_in_rule__VirtualNetworkInterface__Group_8__0__Impl54503 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__1__Impl_in_rule__VirtualNetworkInterface__Group_8__154534 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__2_in_rule__VirtualNetworkInterface__Group_8__154537 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_23_in_rule__VirtualNetworkInterface__Group_8__1__Impl54565 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__2__Impl_in_rule__VirtualNetworkInterface__Group_8__254596 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__3_in_rule__VirtualNetworkInterface__Group_8__254599 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__AddressesAssignment_8_2_in_rule__VirtualNetworkInterface__Group_8__2__Impl54626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__3__Impl_in_rule__VirtualNetworkInterface__Group_8__354656 = new BitSet(new long[]{0x00000000A0000000L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__4_in_rule__VirtualNetworkInterface__Group_8__354659 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8_3__0_in_rule__VirtualNetworkInterface__Group_8__3__Impl54686 = new BitSet(new long[]{0x0000000080000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8__4__Impl_in_rule__VirtualNetworkInterface__Group_8__454717 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_29_in_rule__VirtualNetworkInterface__Group_8__4__Impl54745 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8_3__0__Impl_in_rule__VirtualNetworkInterface__Group_8_3__054786 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8_3__1_in_rule__VirtualNetworkInterface__Group_8_3__054789 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_31_in_rule__VirtualNetworkInterface__Group_8_3__0__Impl54817 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__Group_8_3__1__Impl_in_rule__VirtualNetworkInterface__Group_8_3__154848 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rule__VirtualNetworkInterface__AddressesAssignment_8_3_1_in_rule__VirtualNetworkInterface__Group_8_3__1__Impl54875 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__NetworkInfrastructure__DataCenterNameAssignment_354914 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__NetworkInfrastructure__DataCenterAltNameAssignment_554945 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkTraffic_in_rule__NetworkInfrastructure__TrafficAssignment_754976 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkStructure_in_rule__NetworkInfrastructure__StructureAssignment_955007 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkConfiguration_in_rule__NetworkInfrastructure__ConfigurationAssignment_1155038 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleExperimentParam_in_rule__NetworkInfrastructure__ParamsAssignment_12_255069 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleExperimentParam_in_rule__NetworkInfrastructure__ParamsAssignment_12_3_155100 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEBoolean_in_rule__VirtualNetworkInterfacePerfSpec__IsUpAssignment_455131 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__VirtualNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_655162 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__VirtualNetworkInterfacePerfSpec__MTUAssignment_855193 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpeedUnit_in_rule__VirtualNetworkInterfacePerfSpec__InterfaceSpeedAssignment_1055224 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEBoolean_in_rule__PhysicalNetworkInterfacePerfSpec__IsUpAssignment_455255 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__PhysicalNetworkInterfacePerfSpec__PacketProcessingTimeAssignment_655286 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__PhysicalNetworkInterfacePerfSpec__MTUAssignment_855317 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpeedUnit_in_rule__PhysicalNetworkInterfacePerfSpec__InterfaceSpeedAssignment_1055348 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__VirtualLinkPerfSpec__PropagationDelayAssignment_455379 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__VirtualLinkPerfSpec__MaxSupportedBandwidthAssignment_5_155410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__PhysicalLinkPerfSpec__PropagationDelayAssignment_455441 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__PhysicalLinkPerfSpec__MaxSupportedBandwidthAssignment_5_155472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataPlanePerfSpec_in_rule__IntermediateNodePerfSpec__DataplaneAssignment_355503 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleControlPlanePerfSpec_in_rule__IntermediateNodePerfSpec__ControlplaneAssignment_555534 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__ProcessingLatencyAssignment_355565 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__ProcessingBandwidthReqPSAssignment_555596 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ControlPlanePerfSpec__PacketProcessingTimeAssignment_755627 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingLatencyAssignment_355658 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingBandwidthPPSAssignment_555689 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__ForwardingBandwidthBPSAssignment_755720 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__DataPlanePerfSpec__PacketProcessingTimeAssignment_955751 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__EndNodePerfSpec__SoftwareLayersDelayAssignment_355782 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataPlanePerfSpec_in_rule__EndNodePerfSpec__DataplaneAssignment_4_155813 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleControlPlanePerfSpec_in_rule__EndNodePerfSpec__ControlplaneAssignment_5_155844 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlow_in_rule__NetworkTraffic__FlowsAssignment_3_255875 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlow_in_rule__NetworkTraffic__FlowsAssignment_3_3_155906 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSoftwareComponent_in_rule__NetworkTraffic__SoftwareAssignment_4_255937 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSoftwareComponent_in_rule__NetworkTraffic__SoftwareAssignment_4_3_155968 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNode_in_rule__NetworkStructure__NodesAssignment_3_255999 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNode_in_rule__NetworkStructure__NodesAssignment_3_3_156030 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLink_in_rule__NetworkStructure__LinksAssignment_4_256061 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleLink_in_rule__NetworkStructure__LinksAssignment_4_3_156092 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolsRepository_in_rule__NetworkConfiguration__ProtocolsAndStacksAssignment_356123 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRoutesRepository_in_rule__NetworkConfiguration__RoutesAssignment_556154 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ExperimentParam__NameAssignment_156185 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ExperimentParam__ValueAssignment_456216 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__SoftwareComponent__IdAssignment_156247 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SoftwareComponent__NameAssignment_456278 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SoftwareComponent__AlternativeNamesAssignment_5_256309 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SoftwareComponent__AlternativeNamesAssignment_5_3_156340 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__SoftwareComponent__DeployedOnAssignment_756375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTrafficSource_in_rule__SoftwareComponent__TrafficSourcesAssignment_8_256410 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleTrafficSource_in_rule__SoftwareComponent__TrafficSourcesAssignment_8_3_156441 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__EntityAddress__AddressAssignment_3_156472 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__EntityAddress__AddressGivenByAssignment_4_156507 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_159_in_rule__ONOFFFlow__StartStateAssignment_056547 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__ONOFFFlow__IdAssignment_256586 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ONOFFFlow__NameAssignment_556617 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ONOFFFlow__AlternativeNamesAssignment_6_256648 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ONOFFFlow__AlternativeNamesAssignment_6_3_156679 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ONOFFFlow__DestinationSoftwareComponentAssignment_7_156714 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ONOFFFlow__SourceSoftwareComponentAssignment_8_156753 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__ONOFFFlow__DestinationAddressesAssignment_9_256788 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__ONOFFFlow__DestinationAddressesAssignment_9_3_156819 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ONOFFFlow__ONstateIATAssignment_1156850 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ONOFFFlow__ONstateDurationAssignment_1356881 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ONOFFFlow__OFFstateDurationAssignment_1556912 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__ONOFFFlow__PacketLengthAssignment_1756943 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__GenericFlow__IdAssignment_156974 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__GenericFlow__NameAssignment_457005 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__GenericFlow__AlternativeNamesAssignment_5_257036 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__GenericFlow__AlternativeNamesAssignment_5_3_157067 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__GenericFlow__DestinationSoftwareComponentAssignment_6_157102 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__GenericFlow__SourceSoftwareComponentAssignment_7_157141 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__GenericFlow__DestinationAddressesAssignment_8_257176 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__GenericFlow__DestinationAddressesAssignment_8_3_157207 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__GenericFlow__DataSizeAssignment_1057238 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_160_in_rule__NetworkProtocol__DeliveryGuaranteedAssignment_057274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__NetworkProtocol__NameAssignment_257313 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__NetworkProtocol__AlternativeNamesAssignment_4_257344 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__NetworkProtocol__AlternativeNamesAssignment_4_3_157375 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__NetworkProtocol__MtuAssignment_657406 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__NetworkProtocol__HeadersLengthAssignment_857437 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__NetworkProtocol__DataUnitLengthAssignment_1057468 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEBoolean_in_rule__NetworkProtocol__ConnectionlessAssignment_11_157499 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__ConstantDoubleVariable__ValueAssignment_357530 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_rule__ConstantDoubleVariable__UnitAssignment_4_157561 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleELong_in_rule__ConstantLongVariable__ValueAssignment_357592 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_rule__ConstantLongVariable__UnitAssignment_4_157623 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_rule__RandomVariable__UnitAssignment_2_157654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFunction_in_rule__RandomVariable__CdfAssignment_457685 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__ContinuousFunction__NumArgsAssignment_357716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ContinuousFunction__EquationAssignment_557747 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_rule__ContinuousFunction__UnitAssignment_6_157778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEInt_in_rule__DiscreteFunction__NumArgsAssignment_357809 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDNIUnit_in_rule__DiscreteFunction__UnitAssignment_4_157840 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__XAssignment_757871 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__XAssignment_8_157902 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDataSeries_in_rule__DiscreteFunction__YAssignment_1157933 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleUnitPrefix_in_rule__SpeedUnit__PrefixAssignment_357964 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEFloat_in_rule__SpeedUnit__ValueAssignment_557995 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleSpeed_in_rule__SpeedUnit__UnitAssignment_758026 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__DataSeries__DataAssignment_3_258057 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEDouble_in_rule__DataSeries__DataAssignment_3_3_158088 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__TrafficSource__IdAssignment_158119 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__TrafficSource__NameAssignment_458150 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__TrafficSource__AlternativeNamesAssignment_5_258181 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__TrafficSource__AlternativeNamesAssignment_5_3_158212 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__TrafficSource__AddressesAssignment_6_258243 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__TrafficSource__AddressesAssignment_6_3_158274 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWorkload_in_rule__TrafficSource__WorkloadAssignment_958305 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleWorkload_in_rule__TrafficSource__WorkloadAssignment_10_158336 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__GenericWorkload__ActionsAssignment_3_258367 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__GenericWorkload__ActionsAssignment_3_3_158398 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__BranchAction__InternAssignment_458429 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__BranchAction__InternAssignment_5_158460 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__LoopAction__InternAssignment_358491 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__LoopAction__NumIterationsAssignment_558522 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__SequenceAction__InternAssignment_458553 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleAbstractAction_in_rule__SequenceAction__InternAssignment_5_158584 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__TransmitAction__FlowAssignment_358619 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDependency_in_rule__WaitAction__WaitTimeAssignment_358654 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__VirtualNode__IdAssignment_158685 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__NameAssignment_458716 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__AlternativeNamesAssignment_5_258747 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__AlternativeNamesAssignment_5_3_158778 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__SoftwareAssignment_6_258813 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__SoftwareAssignment_6_3_158852 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNode__HostedOnAssignment_858891 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_rule__VirtualNode__PerformanceAssignment_1058926 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterface_in_rule__VirtualNode__InterfacesAssignment_11_258957 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleVirtualNetworkInterface_in_rule__VirtualNode__InterfacesAssignment_11_3_158988 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__PhysicalNode__IdAssignment_159019 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__NameAssignment_459050 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__AlternativeNamesAssignment_5_259081 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__AlternativeNamesAssignment_5_3_159112 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__SoftwareAssignment_6_259147 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__SoftwareAssignment_6_3_159186 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__HostsAssignment_7_259225 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNode__HostsAssignment_7_3_159264 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_rule__PhysicalNode__PerformanceAssignment_959299 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkInterface_in_rule__PhysicalNode__InterfacesAssignment_10_259330 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkInterface_in_rule__PhysicalNode__InterfacesAssignment_10_3_159361 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__PhysicalLink__IdAssignment_159392 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalLink__NameAssignment_459423 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalLink__AlternativeNamesAssignment_5_259454 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalLink__AlternativeNamesAssignment_5_3_159485 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalLink__ConnectsAssignment_859520 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalLink__ConnectsAssignment_9_159559 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_rule__PhysicalLink__PerformanceAssignment_1259594 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__VirtualLink__IdAssignment_159625 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualLink__NameAssignment_459656 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualLink__AlternativeNamesAssignment_5_259687 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualLink__AlternativeNamesAssignment_5_3_159718 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualLink__ConnectsAssignment_859753 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualLink__ConnectsAssignment_9_159792 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_rule__VirtualLink__PerformanceAssignment_1259827 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolStack_in_rule__ProtocolsRepository__StacksAssignment_2_259858 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolStack_in_rule__ProtocolsRepository__StacksAssignment_2_3_159889 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkProtocol_in_rule__ProtocolsRepository__ProtocolsAssignment_559920 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleNetworkProtocol_in_rule__ProtocolsRepository__ProtocolsAssignment_6_159951 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRoute_in_rule__RoutesRepository__RoutesAssignment_3_259982 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleRoute_in_rule__RoutesRepository__RoutesAssignment_3_3_160013 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlowRoute_in_rule__RoutesRepository__FlowRoutesAssignment_4_260044 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleFlowRoute_in_rule__RoutesRepository__FlowRoutesAssignment_4_3_160075 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDirection_in_rule__RoutesRepository__DirectionsAssignment_5_260106 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleDirection_in_rule__RoutesRepository__DirectionsAssignment_5_3_160137 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolStack__NameAssignment_160168 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolStack__AlternativeNamesAssignment_3_260199 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolStack__AlternativeNamesAssignment_3_3_160230 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolLayer_in_rule__ProtocolStack__LayersAssignment_660261 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleProtocolLayer_in_rule__ProtocolStack__LayersAssignment_7_160292 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__NameAssignment_160323 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__AlternativeNamesAssignment_3_260354 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__AlternativeNamesAssignment_3_3_160385 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__ProtocolAssignment_560420 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__IsCarriedByAssignment_6_160459 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__ProtocolLayer__CarriesAssignment_7_160498 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__Route__IdAssignment_160533 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Route__NameAssignment_460564 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Route__AlternativeNamesAssignment_5_260595 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Route__AlternativeNamesAssignment_5_3_160626 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEIntegerObject_in_rule__Route__NumHopsAssignment_6_160657 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Route__StartAssignment_860692 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Route__EndAssignment_1060731 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleHop_in_rule__Route__HopsAssignment_11_160766 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__FlowRoute__IdAssignment_160797 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__NameAssignment_460828 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__AlternativeNamesAssignment_5_260859 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__AlternativeNamesAssignment_5_3_160890 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEIntegerObject_in_rule__FlowRoute__NumHopsAssignment_6_160921 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__FlowAssignment_860956 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__StartAssignment_1060995 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__FlowRoute__EndAssignment_1261034 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleHop_in_rule__FlowRoute__HopsAssignment_13_161069 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_161_in_rule__Direction__IsDefaultAssignment_061105 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__Direction__IdAssignment_261144 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__NameAssignment_561175 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__AlternativeNamesAssignment_6_261206 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__AlternativeNamesAssignment_6_3_161237 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleELong_in_rule__Direction__DistanceAssignment_7_161268 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__OnNodeAssignment_961303 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__FlowAssignment_10_161342 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Direction__ViaAssignment_1261381 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__Hop__InterfacerefAssignment_361420 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleHop_in_rule__Hop__NextHopAssignment_4_161455 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__PhysicalNetworkInterface__IdAssignment_161486 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__NameAssignment_461517 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_261548 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__AlternativeNamesAssignment_5_3_161579 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__PhysicalNetworkInterface__UsedProtocolStackAssignment_761614 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__PhysicalNetworkInterface__AddressesAssignment_8_261649 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__PhysicalNetworkInterface__AddressesAssignment_8_3_161680 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePhysicalNetworkInterfacePerfSpec_in_rule__PhysicalNetworkInterface__PerformanceAssignment_1061711 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_RULE_ID_in_rule__VirtualNetworkInterface__IdAssignment_161742 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__NameAssignment_461773 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_261804 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__AlternativeNamesAssignment_5_3_161835 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEString_in_rule__VirtualNetworkInterface__UsedProtocolStackAssignment_761870 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__VirtualNetworkInterface__AddressesAssignment_8_261905 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_ruleEntityAddress_in_rule__VirtualNetworkInterface__AddressesAssignment_8_3_161936 = new BitSet(new long[]{0x0000000000000002L});
+        public static final BitSet FOLLOW_rulePerformanceSpecification_in_rule__VirtualNetworkInterface__PerformanceAssignment_1061967 = new BitSet(new long[]{0x0000000000000002L});
+    }
+
+
+}
\ No newline at end of file
diff --git a/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.java b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc3543c4fe074c146b05ea5393c9a981db4e6dfe
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src-gen/tools/descatres/dml/dni/text/ui/internal/DNITextActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class DNITextActivator extends AbstractUIPlugin {
+	
+	public static final String TOOLS_DESCATRES_DML_DNI_TEXT_DNITEXT = "tools.descatres.dml.dni.text.DNIText";
+	
+	private static final Logger logger = Logger.getLogger(DNITextActivator.class);
+	
+	private static DNITextActivator INSTANCE;
+	
+	private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+	
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		INSTANCE = this;
+	}
+	
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		injectors.clear();
+		INSTANCE = null;
+		super.stop(context);
+	}
+	
+	public static DNITextActivator getInstance() {
+		return INSTANCE;
+	}
+	
+	public Injector getInjector(String language) {
+		synchronized (injectors) {
+			Injector injector = injectors.get(language);
+			if (injector == null) {
+				injectors.put(language, injector = createInjector(language));
+			}
+			return injector;
+		}
+	}
+	
+	protected Injector createInjector(String language) {
+		try {
+			Module runtimeModule = getRuntimeModule(language);
+			Module sharedStateModule = getSharedStateModule();
+			Module uiModule = getUiModule(language);
+			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			return Guice.createInjector(mergedModule);
+		} catch (Exception e) {
+			logger.error("Failed to create injector for " + language);
+			logger.error(e.getMessage(), e);
+			throw new RuntimeException("Failed to create injector for " + language, e);
+		}
+	}
+
+	protected Module getRuntimeModule(String grammar) {
+		if (TOOLS_DESCATRES_DML_DNI_TEXT_DNITEXT.equals(grammar)) {
+			return new tools.descatres.dml.dni.text.DNITextRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (TOOLS_DESCATRES_DML_DNI_TEXT_DNITEXT.equals(grammar)) {
+			return new tools.descatres.dml.dni.text.ui.DNITextUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/DNITextUiModule.java b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/DNITextUiModule.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d011dea09aeff59b113f9a1cdbe0dab8bed8abb
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/DNITextUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class DNITextUiModule extends tools.descatres.dml.dni.text.ui.AbstractDNITextUiModule {
+	public DNITextUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.xtend b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..9bfa9f36360824e9e50ad1df92fd32ae083e4c08
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.xtend
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.contentassist
+
+import tools.descatres.dml.dni.text.ui.contentassist.AbstractDNITextProposalProvider
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class DNITextProposalProvider extends AbstractDNITextProposalProvider {
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.xtend b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..f08e1854cdaae52cf2467cdf2d497b7b5502ce04
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class DNITextDescriptionLabelProvider extends org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider {
+
+	// Labels and icons can be computed like this:
+	
+//	override text(IEObjectDescription ele) {
+//		ele.name.toString
+//	}
+//	 
+//	override image(IEObjectDescription ele) {
+//		ele.EClass.name + '.gif'
+//	}	 
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.xtend b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..0ca064308a4cb766e2fbdbec32403afb48c5774e
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.xtend
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.labeling
+
+import com.google.inject.Inject
+
+/**
+ * Provides labels for EObjects.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class DNITextLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider {
+
+	@Inject
+	new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+	// Labels and icons can be computed like this:
+	
+//	def text(Greeting ele) {
+//		'A greeting to ' + ele.name
+//	}
+//
+//	def image(Greeting ele) {
+//		'Greeting.gif'
+//	}
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.xtend b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..3e2f76ee4e49a78bb08c91100d7ba9c2363bc1d1
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.xtend
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline
+ */
+class DNITextOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.xtend b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.xtend
new file mode 100644
index 0000000000000000000000000000000000000000..cdde3f4166d911ff42b305668d0c57f4ecdcb42b
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/src/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.xtend
@@ -0,0 +1,26 @@
+/*
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.quickfix
+
+//import org.eclipse.xtext.ui.editor.quickfix.Fix
+//import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor
+//import org.eclipse.xtext.validation.Issue
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#quick-fixes
+ */
+class DNITextQuickfixProvider extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider {
+
+//	@Fix(MyDslValidator::INVALID_NAME)
+//	def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+//		acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+//			context |
+//			val xtextDocument = context.xtextDocument
+//			val firstLetter = xtextDocument.get(issue.offset, 1)
+//			xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+//		]
+//	}
+}
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..86676661ece1a3480373a7ea8cbeed51d6c32d00
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..c69e276bf5d3e466571caab08b722829d27483ca
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/.DNITextProposalProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.java b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..70e1d85cfd970ec0f0804f83885f744131ed0999
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/contentassist/DNITextProposalProvider.java
@@ -0,0 +1,14 @@
+/**
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.contentassist;
+
+import tools.descatres.dml.dni.text.ui.contentassist.AbstractDNITextProposalProvider;
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+@SuppressWarnings("all")
+public class DNITextProposalProvider extends AbstractDNITextProposalProvider {
+}
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..8abba43aadc7b67115c1ea4dcdeb909a5dcefb3c
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..6312618ce6182c8cde7f8278ff2f9e0c7208af5b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextDescriptionLabelProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..3ecce2bc7f13ca87da84deddc7c67d7c3005edc3
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..0ba70c5f9286e1f61900512a50d40897cae1468c
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/.DNITextLabelProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.java b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..e186c94ca5a2283de384fc2db3b82e46687b5c10
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextDescriptionLabelProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+@SuppressWarnings("all")
+public class DNITextDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+}
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.java b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..45b8634e8f0633ac0bc980cbb87bb1ba62dbbf85
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/labeling/DNITextLabelProvider.java
@@ -0,0 +1,21 @@
+/**
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.labeling;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
+
+/**
+ * Provides labels for EObjects.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+@SuppressWarnings("all")
+public class DNITextLabelProvider extends DefaultEObjectLabelProvider {
+  @Inject
+  public DNITextLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+  }
+}
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..683d5a2056fdb459084e60dfa18e2dd3f3350190
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..a7ac26d49e2d2b9c66e6bb79232e385a1307cd75
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/.DNITextOutlineTreeProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.java b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc0451a1b04e93ae626555720de79810d00530cb
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/outline/DNITextOutlineTreeProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * Customization of the default outline structure.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#outline
+ */
+@SuppressWarnings("all")
+public class DNITextOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace
new file mode 100644
index 0000000000000000000000000000000000000000..bfe4a6124450452f3ccbbcb4ead809aeb672fab5
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.java._trace differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin
new file mode 100644
index 0000000000000000000000000000000000000000..84e97716307301668933ea05bfcbab7e3747806b
Binary files /dev/null and b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/.DNITextQuickfixProvider.xtendbin differ
diff --git a/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.java b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..012f88885244e40e59ac7d5f4ad870d23614c806
--- /dev/null
+++ b/tools.descartes.dml.dni.text.ui/xtend-gen/tools/descatres/dml/dni/text/ui/quickfix/DNITextQuickfixProvider.java
@@ -0,0 +1,15 @@
+/**
+ * generated by Xtext
+ */
+package tools.descatres.dml.dni.text.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#quick-fixes
+ */
+@SuppressWarnings("all")
+public class DNITextQuickfixProvider extends DefaultQuickfixProvider {
+}